selenium跳过登录

维持会话:简单是说就是可以帮我们保持登录状态,不用每次请求都要登录

之前我在requests中讲过怎么维持会话,这里简单回顾一下

Import requests

session = requests.Session()
url = '目标url'
response = session.get(url, headers=headers)

这样就可以保持会话

那selenium怎么维持会话呢?

方法一:

第一次登录后获取cookies,之后的每一个请求都带着这个cookies就好了,调用getcookies()获取cookies,调用add_cookies()将cookies加入请求中

from selenium import webdriver

browser = webdriver.Chrome()
cookies = browser.get_cookies()
browser.add_cookie(cookies)

但这方法没什么效果

方法二:

但是我查到了更好的方法来解决这个问题,连登录的环节都可以直接省去。

我们在使用chrome浏览器的时候总会问我们是否需要保存账号密码,在这过程中浏览器就自动帮我们保持了登录的状态,这些数据会存在一个叫User Data文件夹里
在这里插入图片描述
我的文件位置在:C:\Users\xjm \AppData\Local\Google\Chrome\User Data

调用add_argument()添加参数user-data-dir

from selenium import webdriver

chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument(r"user-data-dir=C:\Users\xjm\AppData\Local\Google\Chrome\User Data")   # 把数据传入程序
chromeOptions.add_experimental_option('excludeSwitches', ['enable-automation'])   # 防止网站发现我们使用模拟器
browser = webdriver.Chrome(options=chromeOptions)
browser.get('http://58921.com/alltime?page=3')   

目标网站:http://58921.com/alltime?page=3(查看大于三页的url需要登录)

之后我们进入浏览器,把账号密码输入,还要记得把记住我点上
selenium跳过登录_第1张图片
最终测试:

我们直接请求第三页看看可以顺利运行吗

结果是:

我们是可以直接请求第三页的而不用登录

你可能感兴趣的:(python,爬虫,selenium,chrome,python)