You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python Selenium中像Requests一样修改Headers与Cookies

在Selenium Chrome中配置自定义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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:27:42