尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

使用cookie操作的形式绕过验证码,进行免登录

使用cookie操作的形式绕过验证码,进行免登录 验证码在当今的软件中应用非常广泛如手机App网页网站等很多地方在利用这种机制来规避一些安全和隐私问题。在自动化测试过程时其中验证码的一种处理思路是通过cookie操作的形式来绕过验证码甚至是二维码等安全机制。而且这种方法和思路相对来说也是简便一些。示例通过百度网盘的登录场景来演示cookie实现自动化登录。步骤1通过脚本抓取初次打开百度网盘首页的cookiefromseleniumimportwebdriver driverwebdriver.Chrome()driver.get(https://pan.baidu.com/)cookiesdriver.get_cookies()print(cookies)driver.quit()执行代码后得到cookie的详情[{‘domain’: ‘.baidu.com’, ‘expiry’: 1679491301, ‘httpOnly’: False, ‘name’: ‘BAIDUID_BFESS’, ‘path’: ‘/’, ‘sameSite’: ‘None’, ‘secure’: True, ‘value’: ‘95FF9F733C38131EAA8CE70BF5C423A9:FG1’}, {‘domain’: ‘.baidu.com’, ‘expiry’: 1679491300, ‘httpOnly’: False, ‘name’: ‘BAIDUID’, ‘path’: ‘/’, ‘secure’: False, ‘value’: ‘95FF9F733C38131EAA8CE70BF5C423A9:FG1’}]步骤2登录百度网盘再抓取一次cookiefromseleniumimportwebdriver driverwebdriver.Chrome()driver.maximize_window()driver.get(https://pan.baidu.com/)driver.implicitly_wait(10)driver.find_element_by_xpath(//input[idTANGRAM__PSP_4__userName]).send_keys(输入账号)driver.find_element_by_xpath(//input[idTANGRAM__PSP_4__password]).send_keys(输入密码)driver.find_element_by_xpath(//input[idTANGRAM__PSP_4__submit]).click()cookiesdriver.get_cookies()print(cookies)driver.quit()步骤3比较一下两次得到的cookie值的差别找出哪些项是在第一次cookie值中没有的。通过添加这些缺少的值来实现自动化登录。# coding utf-8# Author: wh# Date: 2022/3/22 21:09fromseleniumimportwebdriverimporttime driverwebdriver.Chrome()driver.get(https://pan.baidu.com/)cookies[{domain:.pan.baidu.com,httpOnly:False,name:Hm_lpvt_7a3960b6f067eb0085b7f96ff5e660b0,path:/,secure:False,value:1613827179},{domain:.pan.baidu.com,expiry:1645363178,httpOnly:False,name:Hm_lvt_7a3960b6f067eb0085b7f96ff5e660b0,path:/,secure:False,value:1613827179},{domain:.pan.baidu.com,expiry:1616505578,httpOnly:True,name:STOKEN,path:/,secure:False,value:a1abe64bd378e143476f2d856a1e5a7080aff1abc2ecd89f32ea5e90a9345e17},{domain:pan.baidu.com,httpOnly:False,name:csrfToken,path:/,secure:False,value:DllTNBH92jJnSmaaheqBlCVP},{domain:pan.baidu.com,expiry:4205827178,httpOnly:False,name:pan_login_way,path:/,secure:False,value:1},{domain:.baidu.com,expiry:1873027176,httpOnly:True,name:BDUSS_BFESS,path:/,sameSite:None,secure:True,value:dBZktEYzQxVH5WVzBBYndldVN1SFpzNHJXM1B5ajBLamZvcE9PbmJ1eG9tVmhnSVFBQUFBJCQAAAAAAAAAAAEAAACR-JXzu6LHxbe76srX0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgMMWBoDDFgQ1},{domain:.pan.baidu.com,expiry:1613913578,httpOnly:True,name:PANPSC,path:/,secure:False,value:7228614414795236799%3AHSTAF2Xekfpr2hRSrOsG6kYemHfSgA%2FTpMk%2BQbyzAbdSghkg9EtPCY8c7lMN%2Fy07vd10u1h12sgr2wqYbSNJzI5Z7CUEEVIfuYpAOs4Qb65E2OlLZIpvWpwI2lYmdZVOf9Ocgd2LBDwKxMOTh0nUJJC9qgHiau%2FldS8c7ndIzLExGZiuUUeCaoX0p6z9lD8V7g%2B5PM2vWus%3D},{domain:.baidu.com,expiry:1873027176,httpOnly:True,name:BDUSS,path:/,secure:False,value:dBZktEYzQxVH5WVzBBYndldVN1SFpzNHJXM1B5ajBLamZvcE9PbmJ1eG9tVmhnSVFBQUFBJCQAAAAAAAAAAAEAAACR-JXzu6LHxbe76srX0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgMMWBoDDFgQ1},{domain:.baidu.com,expiry:1645363164,httpOnly:False,name:BAIDUID,path:/,secure:False,value:9B84713A7600A60235F0E15E206A8C3D:FG1}]# 写入cookieforcookieincookies:driver.add_cookie(cookie)time.sleep(3)# 访问网站查看是否是登录状态driver.get(https://pan.baidu.com/)# 关闭浏览器driver.quit()
返回列表