如何使用Python获取浏览器网络面板指定请求的Request Headers内容
Python提取浏览器网络面板指定请求参数的实现方法
以下是两种可直接落地的实现方案,你可以根据自身场景选择:
方案1:Selenium调用CDP接口监听请求(无需额外配置代理)
该方案直接控制浏览器启动,调用Chrome自带的开发者工具接口实时监听网络请求,匹配到目标请求后可直接提取任意请求字段。
依赖安装
pip install selenium webdriver-manager
示例代码(提取目标GET请求的Cookie值)
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 此处修改为你要匹配的目标请求URL关键词,比如目标请求包含"api/getData"就填这个 TARGET_URL_KEYWORD = "api/getData" def handle_request(event): request = event.get("request", {}) url = request.get("url", "") method = request.get("method", "") # 匹配GET请求且URL包含指定关键词的目标请求 if method == "GET" and TARGET_URL_KEYWORD in url: headers = request.get("headers", {}) cookie = headers.get("Cookie", "") print(f"匹配到目标请求,URL:{url}") print(f"提取到的Cookie值:\n{cookie}\n") if __name__ == "__main__": # 启动Chrome浏览器 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) # 启用网络监听 driver.execute_cdp_cmd("Network.enable", {}) # 绑定请求发送事件的回调函数 driver.on("Network.requestWillBeSent", handle_request) # 此处修改为你要访问的目标页面地址 driver.get("https://目标网站地址.com") # 保持浏览器运行,持续监听请求 input("按任意键退出程序\n") driver.quit()
使用说明
- 先修改代码里的
TARGET_URL_KEYWORD为你要抓取的请求URL的特征关键词 - 修改
driver.get的参数为目标页面的访问地址 - 运行代码后会自动打开浏览器,你操作页面触发目标请求后,控制台会自动打印对应Cookie值
方案2:mitmproxy代理抓包(适合批量抓包场景)
该方案通过本地代理转发浏览器所有流量,过滤匹配目标请求后提取对应参数,适合需要批量抓取多个请求的场景。
依赖安装
pip install mitmproxy
示例抓包脚本(save_cookie.py)
from mitmproxy import http # 目标请求URL关键词 TARGET_URL_KEYWORD = "api/getData" def request(flow: http.HTTPFlow) -> None: if flow.request.method == "GET" and TARGET_URL_KEYWORD in flow.request.url: cookie = flow.request.headers.get("Cookie", "") print(f"目标请求URL:{flow.request.url}") print(f"提取Cookie值:\n{cookie}\n")
使用说明
- 运行代理服务:执行命令
mitmdump -s save_cookie.py - 打开浏览器网络设置,将代理地址修改为
127.0.0.1:8080 - 访问目标页面触发请求,控制台会自动打印对应Cookie值
注意事项
- 如果需要提取Request Headers内的其他字段,只需将代码中的
Cookie替换为对应字段名即可 - 如需提取响应内容、请求参数等其他数据,可修改对应逻辑中取值的字段
- 若目标网站启用HTTPS,需要先安装mitmproxy的根证书才能正常抓取HTTPS请求
内容的提问来源于stack exchange,提问作者Bolt
相关产品推荐
相关产品推荐

