练习_Python3 selenium模拟浏览器自动签到

参考大佬们的教程自己鼓捣出来一个翼狐网的自动签到程序。

不知道为什么网站在加载iframe的登录框时会等待响应很久(这个太影响效率了),希望有大佬帮忙看看。

以下是代码:

# -*- coding: utf-8 -*-
# 自动模拟Chrome登录翼狐网(https://www.yiihuu.com/)签到
# 作者博客:https://www.cnblogs.com/Raine/
# 2019-06-22

import time
from selenium import webdriver


class SignIn:
    def __init__(self):
        self.browser = webdriver.Chrome()  # 模拟浏览器打开网站
        self.browser.get("https://www.yiihuu.com/")
        # self.browser.maximize_window() #将窗口最大化

    def _login_page(self):
        time.sleep(1)  # 延时加载
        self.browser.find_element_by_xpath("//*[@id='J_u-login']/div/a[1]").click()
        print('登录页面加载成功。')
        time.sleep(2)

    def _send_userinfo(self):
        # 不知道为什么翼狐网iframe框架出来之后会响应很长时间
        # self.browser.stop_client()
        self.browser.switch_to.frame('J_iframe')
        # 找到输入狂,输入账号密码
        self.browser.find_element_by_id("J_account").send_keys("user_name")
        self.browser.find_element_by_id("J_password").send_keys("user_pw")

        # 模拟点击登录
        self.browser.find_element_by_xpath("//*[@id='J_sbbtn']").click()
        time.sleep(2)

    def _check_signin(self):
        self.browser.find_element_by_xpath("//*[@class='tip_bind']/span").click()
        text1 = self.browser.find_element_by_xpath("//*[@id='J_u-login']/div[1]/a")
        if text1 != '登录':
            print('登录成功。')
        time.sleep(1)

        sign_in_div = self.browser.find_element_by_xpath("//*[@class='toolbar clearfix']/div[3]/span/img")
        if sign_in_div.get_attribute('title') == '今日已签到':
            print('今日已签到')
        else:
            sign_in_div.click()
            print('签到成功')

    def login(self):
        self._login_page()
        self._send_userinfo()
        self._check_signin()
        self.browser.quit()


if __name__ == '__main__':
    SignIn().login()

  

参考资料:

[Python3网络爬虫开发实战] 7.1-Selenium的使用 :https://cuiqingcai.com/5630.html

XPath详解,总结 :https://www.cnblogs.com/ktgu/archive/2009/04/16/1353246.html

Python3.x爬虫教程:爬网页、爬图片、自动登录 :https://blog.csdn.net/Evankaka/article/details/46849095

用Python写网页的自动签到 :https://blog.csdn.net/qq_40925239/article/details/83003413

while True :

    learning ()

原文地址:https://www.cnblogs.com/Raine/p/11068828.html