通过selenium获取浏览器的cookie等头部信息
一、背景介绍
对于部分有登陆限制的网站/APP我们无法通过登陆接口实现登陆(比如验证码)
但是我们还想绕过登陆接口通过接口来实现一些操作,毕竟UI自动化比较慢。
想到了可以通过UI自动化来进行登录(之前也介绍过UI自动化实现自动登录,
包括验证码的实现),然后获取登陆后的cookie等信息,进而实现接口操作
二、实现方式
seleniumUI自动化登陆,然后再登陆后获取当前的headers信息。通过获取的headers信息
采用接口的形式实现我们的操作。(借助第三方库seleniumwrit【感谢大佬公布的类库】)
三、实现过程
1、安装selenium-writ库 下载路径:https://pan.baidu.com/s/17SsvS3uF_G6PC7M1FIRveg 提取码:ivfz
下载之后,使用pip进行安装, cd 文件所在目录 pip install 文件名称 此时就安装完成
2、导入使用第三方库 此类库就替代了selenium库来使用 from seleniumwire import webdriver
3、通过driver.requests来获取当前网页的所有信息头
4、筛选出我们需要的headers头,我们可以判断headers里面是否有cookie等特定的参数来实现
四、代码
import time
from seleniumwire import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
driver.find_elements(By.CLASS_NAME,'el-input__inner')[0].send_keys('')
driver.find_elements(By.CLASS_NAME,'el-input__inner')[1].send_keys('')
driver.find_element(By.XPATH, '//div/div/div/button/span[text()="登录"]').click()
time.sleep(2)
agent = driver.requests
a = 1
print(agent[-2].headers)
for requests in agent:
print('========================================'+ str(a)+'============================')
print(requests.headers)
a = a+1
driver.quit()
|