如何用Python Selenium获取Chrome DevTools Network定期更新的search接口数据
实现方案
完全可以实现,你不需要从Performance面板提取数据,直接通过Selenium 4+ 内置的Chrome DevTools Protocol(CDP)监听网络请求事件即可,这是目前最直接的实现方式。
前置要求
- 升级Selenium到4.0及以上版本,旧版本不支持原生CDP调用
- 不需要额外安装其他依赖(如果用selenium-wire方案需要单独安装)
方案1:原生CDP实现(推荐)
核心逻辑是监听Chrome的Network域事件,匹配到目标search接口后直接拉取响应体,示例代码如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options import json chrome_options = Options() driver = webdriver.Chrome(options=chrome_options) # 启用Network域的事件上报 driver.execute_cdp_cmd("Network.enable", {}) # 定义请求监听回调 def capture_search_response(event): # 匹配目标search接口,这里根据你的实际接口特征修改匹配规则,比如路径包含/search、请求域名符合等 if "search" in event["response"]["url"]: request_id = event["requestId"] # 获取响应体内容 response_body = driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id}) # 响应内容存在response_body['body']里,是字符串格式,json接口可以直接loads转字典 try: data = json.loads(response_body["body"]) # 这里写你处理数据的逻辑 print("捕获到search接口数据:", data) except json.JSONDecodeError: # 非json格式响应直接打印原内容 print("捕获到search接口非JSON响应:", response_body["body"]) # 绑定responseReceived事件触发回调 driver.add_cdp_listener("Network.responseReceived", capture_search_response) # 后续正常运行你的Selenium逻辑即可,比如打开目标页面 driver.get("你的目标页面URL")
方案2:使用selenium-wire简化实现
如果不想写CDP相关代码,可以用封装好的selenium-wire库,它会自动代理所有浏览器请求,直接遍历请求列表即可匹配目标接口:
- 先安装依赖:
pip install selenium-wire - 示例代码:
from seleniumwire import webdriver import time driver = webdriver.Chrome() driver.get("你的目标页面URL") # 循环监听新请求 while True: # 遍历所有已捕获的请求 for request in driver.requests: # 匹配目标search接口,且请求已完成有响应 if "search" in request.url and request.response: # 拿响应内容 data = request.response.body.decode("utf-8") print("捕获到search接口数据:", data) # 处理完后可以删掉已经处理过的请求,避免重复处理 del driver.requests[driver.requests.index(request)] time.sleep(1)
注意事项
- 如果需要获取
search接口的请求参数(比如POST的请求体),可以在CDP方案中监听Network.requestWillBeSent事件,里面包含完整的请求头、请求体信息 - 两种方案拿到的响应内容和Chrome DevTools Network面板里看到的完全一致,不需要额外处理加密、签名等逻辑
- 若接口设置了CORS或者其他跨域限制,不会影响数据捕获,因为是直接从浏览器内核层面拿的已加载的数据
内容的提问来源于stack exchange,提问作者xAnThOnYx
相关产品推荐
相关产品推荐

