现在许多网站的登陆都会比较复杂,有时直接使用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()#关闭浏览器