selenium&selenium-wire使用
=selenium-wire 简单使用=
官网: https://github.com/wkeeling/selenium-wire 强烈建议直接使用这个库
selenium-wire 对selenium 做了扩展,让程序有能力拿到requests 对象,然后获取请求和响应信息,并且可以修改请求头(包括自定义的头)、修改请求参数(包括param和请求体中的JSON数据)、获取修改响应头等信息。
下面演示增加自己的header:(请求拦截器与响应拦截器用法)
from seleniumwire import webdriver
# 拦截request
def interceptor_request(request):
del request.headers['mykey'] # Remember to delete the header first
request.headers['mykey'] = 'mykey-value' # Spoof the referer
# 拦截response
def interceptor_response(request, response):
if request.url == 'http://localhost:8088/inner/t4':
response.headers['New-Header'] = 'Some Value'
browser = webdriver.Chrome("chromedriver.exe")
browser.request_interceptor = interceptor_request
browser.response_interceptor = interceptor_response
browser.get("http://localhost:8088/inner/t4")
for request in browser.requests:
if request.response:
print(
request.url,
request.response.status_code,
request.response.headers
)
需要注意,进程结束之后browser 也是close 状态的,无法进行后续页面刷新或请求数据。