python+selenium 实现扫码免密登录

一、需求描述

  web 自动化测试/python爬虫往往会遇到扫码登录的情况,不是所有的网站都支持用户密码登录,遇到这种扫码登录的情况会阻碍我们自动化测试/爬虫的进行,所有为了可以顺畅的进行我们的需求,在进行自动化或者爬虫前我们首先要解决扫码登录的问题,下面讲解如何实现扫码免密登录。

  

 二、首先初始化浏览器

def browser_initial():
    driver = webdriver.Chrome('/Users/xxx/Documents/python/pack/chromedriver/chromedriver')
    page_url = 'https://xxx/38268919/bugtrace/buglists/query/1/created/desc?query_token=20220706291334df28c613a85aa589f04376d034'
    driver.get(page_url)
    driver.maximize_window()
    return driver

 

三、获取扫码登录cookies保存至本地,然后再从txt文件中获取保存到本地的cookies实现登录,代码实现如下

from get_cookie import get_cookies

def login(driver):
    with open('cookies.txt','r',encoding='utf8') as f:
        cookies = json.loads(f.read())
    # 给浏览器添加cookies
    for cookie in cookies:
        cookie_dict = {
            'domain': '.tapd.cn',
            'name': cookie.get('name'),
            'value': cookie.get('value'),
            "expiry": 1658386136,
            'path': '/',
            'httpOnly': True,
            'Secure': True
        }
        # print(cookie_dict)
        driver.add_cookie(cookie_dict)
    # 刷新网页,cookies才会成功
    driver.refresh()

if __name__ =='__main__':
  driver=browser_initial()
 # 首先获取cookies
 get_cookies()
  login(driver)

 

posted @ 2022-07-14 16:09  梅梅不想踩坑  阅读(2958)  评论(2编辑  收藏  举报