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

如何用Python的Selenium获取DevTools网络Headers中的Cookie数据?

如何获取DevTools Network Headers中的Cookie数据

一、用Python Selenium获取Network Headers信息

你之前的代码只拿到了performance日志,但没做解析。要拿到Network里的Cookie,得先开启Chrome的性能日志收集,再从日志里过滤出网络请求/响应事件,提取对应头里的Cookie。

完整代码示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json

url = "http://url.com"

# 配置Chrome,开启性能日志收集
chrome_options = Options()
chrome_options.set_capability('goog:loggingPrefs', {'performance': 'ALL'})

driver = webdriver.Chrome(options=chrome_options)
driver.get(url)

# 获取性能日志并解析
logs = driver.get_log("performance")
for log in logs:
    log_msg = json.loads(log['message'])['message']
    # 提取请求头里的Cookie(对应Network.requestWillBeSent事件)
    if log_msg['method'] == 'Network.requestWillBeSent':
        req_headers = log_msg['params']['request']['headers']
        if 'Cookie' in req_headers:
            print("请求Cookie:", req_headers['Cookie'])
    # 提取响应头里的Set-Cookie(对应Network.responseReceived事件)
    elif log_msg['method'] == 'Network.responseReceived':
        res_headers = log_msg['params']['response']['headers']
        if 'Set-Cookie' in res_headers:
            print("响应Set-Cookie:", res_headers['Set-Cookie'])

driver.quit()

注意:别用固定的time.sleep,换成Selenium的显式等待(比如等待页面某个元素加载完成),能更稳定地拿到完整日志。

二、比Selenium更优的Python实现方法

Selenium要启动浏览器,资源占用大、速度慢,以下两种方法更高效:

1. requests库(无复杂JS渲染场景)

如果目标网站不需要JS渲染页面,直接用requests配合Session就能自动管理Cookie,轻量又快速。

代码示例:

import requests

url = "http://url.com"
# 创建Session,自动保存和携带Cookie
session = requests.Session()

# 发送请求
response = session.get(url)

# 查看响应返回的Cookie
print("响应Cookie:", dict(response.cookies))

# 后续请求直接用session发送,会自动带上Cookie
# response_next = session.get("http://url.com/other-page")

2. curl-cffi(应对反爬场景)

如果网站有反爬机制(比如检测浏览器指纹),requests容易被识别,用curl-cffi可以模拟真实浏览器的请求指纹,同时支持Cookie管理,性能比Selenium好太多。

代码示例:

from curl_cffi import requests

url = "http://url.com"
session = requests.Session()

# 模拟Chrome 110的请求指纹
response = session.get(url, impersonate="chrome110")

# 获取Cookie
print("响应Cookie:", dict(response.cookies))

内容的提问来源于stack exchange,提问作者ahhu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:23:25