zoukankan      html  css  js  c++  java
  • 练习_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 ()

  • 相关阅读:
    mybatis集成spring
    静态代码块-普通代码块-构造代码块(好多图)
    Mybatis generator(复制粘贴完成)
    委派模式和适配器模式
    mysq--索引模块
    谈谈TCP的四次挥手
    说说TCP的三次握手
    网络基础知识
    java的IO机制
    std::bind接口与实现
  • 原文地址:https://www.cnblogs.com/Raine/p/11068828.html
Copyright © 2011-2022 走看看