为什么要用seleniumwire而不用原生的selenium
最近需要抓取一个页面的信息,但是页面数据请求是异步post请求,这个数据异步请求进行了反爬,请求头有三个参数是js生成的,通过js破解参数难度较大,所以想利用【seleniumwire】获取通过js加密后的三个参数,让【seleniumwire】帮我们解析js。
seleniumwire安装
使用seleniumwire获取请求头
# 是seleniumwire 不是 selenium
from seleniumwire import webdriver
from selenium.webdriver.support.wait import WebDriverWait
# 配置驱动
driver = webdriver.Firefox(executable_path='E:\Python\learnning\meituan\webdriver\geckodriver.exe')
# 发送请求
driver.get('http://www.baowugroup.com/media_center/news?page=1')
# 等待数据加载完
WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath('//h1[@class="page-top-img__title--c"]'))
# 遍历打印请求列表
for request in driver.requests:
print(request,request.headers,request.response)
# 根据自己的需求找出请求
if request.response and "x-signature" in request.headers:
print(request.headers["x-signature"])
driver.close()
原文地址:得塔博客