如何用Python的requests库获取网站Network中的Fetch/XHR名称
获取网站Network标签里的Fetch/XHR请求名称
原代码根本抓不到目标请求,问题出在这:
requests只能爬取初始页面的静态HTML,页面加载后通过JavaScript动态发起的Fetch/XHR请求它捕获不到- 你遍历Cookie找请求的逻辑完全错误,XHR请求和Cookie没有这种关联关系
正确实现办法(用Playwright)
要抓取动态请求必须用能模拟浏览器运行的工具,Playwright可以模拟真实浏览器行为,同时监听所有网络请求。
先安装依赖
pip install playwright playwright install chromium
代码示例
from playwright.sync_api import sync_playwright def get_xhr_fetch_urls(target_url): xhr_list = [] with sync_playwright() as p: # 启动浏览器,headless=False可显示浏览器窗口,改为True即可后台运行 browser = p.chromium.launch(headless=False) page = browser.new_page() # 监听所有请求,仅保留Fetch/XHR类型的请求URL def track_request(req): if req.resource_type in ("fetch", "xhr"): xhr_list.append(req.url) page.on("request", track_request) # 打开目标网址,等待网络空闲后结束,确保所有动态请求都已发起 page.goto(target_url, wait_until="networkidle") browser.close() return xhr_list if __name__ == "__main__": url = "https://www.jobteaser.com/en" result = get_xhr_fetch_urls(url) print(result)
代码说明
- 启动Chromium浏览器,完全模拟真实用户的访问流程
- 通过监听网络请求,筛选出Fetch和XHR类型的请求并记录其URL
- 等待网络空闲再关闭浏览器,保证页面所有动态加载的请求都被捕获
- 运行后得到的结果格式与你预期的一致
内容的提问来源于stack exchange,提问作者The Dan
相关产品推荐
相关产品推荐

