原理很简单,首先手动完成登录后,把cookies保存到本地,下次再把cookies注入到浏览器里面,就自动实现了登录
最近在学习写python的自动化脚本,但是发现测试工具打开之后的网页是没有用户自己打开浏览器时记录的cookie,简单来说也就是打开的网站不会自己登录,所以想要简单的实现下如何用cookie来登录
总的来说分两步
cookies是用户的凭证,只要有cookies这一串字符串,服务器那头就能识别是哪个用户。
第一步,把cookies保存到本地
from selenium import webdriver import json ### 下面是chromedriver路径,自己填 browser = webdriver.Chrome("###########") ### 打开要自动登录的网站,比如说csdn browser.get("https://www.csdn.net/") ###手动完成登录后,随便在控制台输入内容,就保存下来了 input("等待登录成功,登录成功后随便输入内容。") dictCookies = browser.get_cookies() jsonCookies = json.dumps(dictCookies) with open('cookies.txt', 'w') as f: f.write(jsonCookies) print('cookies保存成功!')
下次启动就能实现自动登录了
第二步,把保存到本地的cookies注入到浏览器里面
首先要清楚网站的domain是什么,去cookies里面找
from selenium import webdriver import json ### 下面是chromedriver路径,自己填 browser = webdriver.Chrome("###########") ### 打开要自动登录的网站 browser.get("https://www.csdn.net/") with open(name, 'r', encoding='utf8') as f: listCookies = json.loads(f.read()) for cookie in listCookies: cookie_dict = { ### 这个domain看cookies第一个字段就知道了,需要找到并填入 'domain': '########', 'name': cookie.get('name'), 'value': cookie.get('value'), "expires": '', 'path': '/', 'httpOnly': False, 'HostOnly': False, 'Secure': False } browser.add_cookie(cookie_dict) # browser.refresh() # 刷新网页,cookies才成功 browser.get("https://www.csdn.net/")
这样最后启动的浏览器就能自动登录了