我想更改我的 header Http 信息,但以下代码没有任何反应。 请帮助我,问题是什么,我应该如何解决? 我希望能够在每次访问时更改用户的信息,例如 ModHeader 扩展。
import time
import os
from seleniumwire import webdriver
from selenium.webdriver.chrome.options import Options # Import from seleniumwire
driver = webdriver.Chrome()
def interceptor(request):
request.headers['User-Agent'] = 'Mozilla/6.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'
request.headers['sec-ch-ua'] = '"Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"'
request.headers['sec-ch-ua-mobile'] = '?0'
request.headers['sec-ch-ua-platform'] = 'os'
driver.request_interceptor = interceptor
driver.get("https://google.com")
for request in driver.requests:
print(request.headers)
print(request.response)
time.sleep(500)
我的问题是这样的link 在我的驱动程序数据中显示了这一点
204
sec-ch-ua: "Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"
sec-ch-ua-mobile: ?0
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
sec-ch-ua-arch: "x86"
sec-ch-ua-full-version: "111.0.5563.64"
sec-ch-ua-platform-version: "10.0.0"
sec-ch-ua-full-version-list: "Google Chrome";v="111.0.5563.64", "Not(A:Brand";v="8.0.0.0", "Chromium";v="111.0.5563.64"
sec-ch-ua-bitness: "64"
sec-ch-ua-model:
sec-ch-ua-wow64: ?0
sec-ch-ua-platform: "Windows"
accept: image/avif,image/webp,image/apng,image/svg+xml,image/,/*;q=0.8
x-client-data: CIv0ygE=
sec-fetch-site: same-origin
sec-fetch-mode: no-cors
sec-fetch-dest: image
referer: https://www.google.com/
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cookie: 1P_JAR=2023-03-12-22; AEC=ARSKqsLIZuIQCQoYlTRZfCg_tawXYvRiB1kDB8z1c0VRRrPAuD-iymrB8A; NID=511=rcB6Nv8Pzk7ZBKQzTcVBvMSzLfv0oqUwXU9b8LzBUfGVVEt1vkRAlZ5Lkg6fnKFbfb8jcf6tsYPVWRSe0wmd932NmGYf1vrDsxPp8nBEegoW_5nqEU2OCrKzLqDrBaBpsfeLOiXnJoz1ZJC6Cd2tqiO6XhTufWslhtromMGSRZc
User-Agent: Mozilla/6.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36
sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"
sec-ch-ua-mobile: ?0
最佳答案
我使用这个代码
from seleniumwire import webdriver # Import from seleniumwire
import time
# Create a new instance of the Chrome driver (or Firefox)
driver = webdriver.Chrome()
# Create a request interceptor
def interceptor(request):
#del request.headers['Referer'] # Delete the header first
del request.headers['sec-ch-ua-mobile'] # Delete the header firs
request.headers['sec-ch-ua-mobile'] = '?1'
# Set the interceptor on the driver
driver.request_interceptor = interceptor
# All requests will now use 'some_sec' for the user-agent
driver.get('https://httpbin.org/anything')
time.sleep(100)
我得到了这个答案
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9",
"Host": "httpbin.org",
"Sec-Ch-Ua": "\"Google Chrome\";v=\"111\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"111\"",
"Sec-Ch-Ua-Mobile": "?1",
"Sec-Ch-Ua-Platform": "\"Windows\"",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
"X-Amzn-Trace-Id": "Root=1-6411d437-6a5b738d424453642abefa89"
},
"json": null,
"method": "GET",
"origin": "5.239.189.35",
"url": "https://httpbin.org/anything"
}
关于python - 我如何修改 seleniumwire 驱动程序中的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75723289/