使用selenium时,如何通过cookie来模拟登陆?

现在许多网站的登陆都会比较复杂,有时直接使用Cookie模拟登陆不失为一个简单粗暴的方法。

使用Cookie来模拟登陆,就是用户在浏览器先登录网站,然后将Cookie信息拷贝出来,用来设置请求的Cookie。

以模拟登陆知乎为例:

from selenium import webdriver
from selenium.webdriver import Chrome,ChromeOptions

options = ChromeOptions()
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36') #设置User-Agent
options.add_argument('--headless') #*面浏览器
options.add_argument("disable-blink-features=AutomationControlled")#去掉webdriver痕迹

driver = Chrome(options=options)
cookies = {"name1":"value1","name2":"value2"...}#用户通过浏览器登陆后,拿到的cookie信息
driver.get('https://www.zhihu.com/')#先访问一次知乎主页
driver.delete_all_cookies()#清空所有cookie
#重新添加cookie
for name,value in cookies.items():
    driver.add_cookie({'domain':'.zhihu.com','httpOnly': False,'secure': False,'name':name,'value':value})
js = 'window.open("https://www.zhihu.com")'
driver.execute_script(js)#通过js新打开一个窗口,访问知乎主页
driver.switch_to.window(driver.window_handles[-1])#切换到新打开的页面
driver.save_screenshot('zhihu.png') #生成当前页面快照
driver.quit()#关闭浏览器

 

上一篇:Python操作redis系列之 列表(list) (五)(转)


下一篇:java面试项目