如何在Python Selenium中像Requests一样修改Headers与Cookies
一、自定义Headers的配置方式
Selenium不像Requests那样可以直接传入完整Headers字典,需针对不同Header采取对应方式:
- User-Agent、Accept-Language等常规Header:通过
ChromeOptions直接设置 - Host、Alt-Used等特殊Header:借助Chrome DevTools协议(CDP)注入
二、Cookies的配置步骤
Cookies必须与目标域名绑定,需先访问目标站点,再将cookie字符串解析为Selenium可识别的字典格式后逐个添加。
修改后的完整代码示例
from myCookie import cookie from selenium import webdriver from selenium.webdriver.chrome.options import Options import time # 自定义Headers(移除原Cookie字段,单独处理) headers = { "Host": "mbasic.facebook.com", "User-Agent": "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; SCH-I535 Build/KOT49H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", "Accept": "image/avif,image/webp,*/*", 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': '', 'Alt-Used': 'mbasic.facebook.com', 'Connection': "keep-alive" } # 1. 通过ChromeOptions设置基础Header chrome_options = Options() chrome_options.add_argument(f'user-agent={headers["User-Agent"]}') chrome_options.add_argument(f'accept-language={headers["Accept-Language"]}') driver = webdriver.Chrome(options=chrome_options) # 2. 用CDP注入剩余特殊Header driver.execute_cdp_cmd('Network.setExtraHTTPHeaders', {'headers': headers}) # 3. 先访问目标域名(必须加载页面后才能添加对应Cookies) driver.get("https://mbasic.facebook.com") # 4. 解析cookie字符串为Selenium可用的字典格式 cookie_list = [] for item in cookie.split('; '): key, value = item.split('=', 1) cookie_dict = { 'name': key, 'value': value, 'domain': '.facebook.com', # 泛域名适配所有子站点 'path': '/', 'secure': True, 'httpOnly': True } cookie_list.append(cookie_dict) # 5. 逐个添加Cookies for c in cookie_list: try: driver.add_cookie(c) except Exception as e: print(f"添加Cookie失败: {e}") # 刷新页面使Cookies生效 driver.refresh() # 后续业务操作示例 time.sleep(5) driver.quit()
关键说明
- 先访问域名:浏览器同源策略限制Cookies必须与当前页面域名匹配,因此必须先加载目标站点才能添加对应Cookies。
- CDP注入Header:针对Host、Alt-Used这类无法通过ChromeOptions直接设置的Header,
Network.setExtraHTTPHeaders是最可靠的注入方式。 - Cookie解析细节:需确保
domain、path等参数与实际cookie属性匹配,否则Cookie无法生效;若你的cookie字符串已包含domain等信息,可调整解析逻辑直接复用。
内容的提问来源于stack exchange,提问作者Mokhtar omar
相关产品推荐
相关产品推荐

