美文网首页
python selenium login func

python selenium login func

作者: 王国的荣耀 | 来源:发表于2021-05-11 16:18 被阅读0次

    背景:

    1. web端的sig 已经破解,但web的cookie只有一天的有效期。
    2. 还原cookie生成有点麻烦,故使用selenium模拟登录。

    查看chrome version

    前置条件:更新chrome到最新版本。

    查看chrome version

    chrome://version/
    
    # 显示的chrome信息
    Google Chrome   90.0.4430.212 (正式版本) (x86_64)
    修订版本    e3cd97fc771b893b7fd1879196d1215b622c2bed-refs/branch-heads/4430@{#1429}
    操作系统    macOS 版本11.3.1(版号20E241)
    JavaScript  V8 9.0.257.29
    用户代理    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
    命令行 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --origin-trial-disabled-features=SecurePaymentConfirmation --flag-switches-begin --flag-switches-end
    

    查看chromedriverb版本
    chromedriver version list

    下载chromedriverb版本

    http://chromedriver.storage.googleapis.com/index.html?path=90.0.4430.24/
    

    webdriver 无界面设置

     options = webdriver.ChromeOptions()
     # 添加无界面参数
     options.add_argument('--headless')
    

    模拟登录过程

    1. 初始化webdriver
    2. 请求网页
    3. 定位元素;可通过id、class或者xpath等。比如driver.find_element_by_xpath。
    4. 输入账号和密码
    5. 如果有验证码的,破解验证码等。

    模拟登录遇到的问题

    判定平台类型

    def get_platform():
        platform_ = platform.system()
        is_win = is_linux = is_mac = False
        if platform_ == "Windows":
            is_win = True
        if platform_ == "Linux":
            is_linux = True
        if platform_ == "Darwin":
            is_mac = True
        return [is_win, is_linux, is_mac]
    

    DeprecationWarning: use options instead of chrome_options

    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    driver = webdriver.Chrome(options=chrome_options)
    

    相关文章

      网友评论

          本文标题:python selenium login func

          本文链接:https://www.haomeiwen.com/subject/ipmgdltx.html