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

Python Requests请求耗时过长,无法找到合适的XHR请求链接

解决方案

一、先修正代码中的错误

你当前代码里的URL末尾多了一个多余的双引号,这会导致请求无效,先修正:

import requests

s = requests.Session()

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.79 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Referer': 'https://www.calorie-charts.info/',
    'Connection': 'keep-alive'
}

# 移除末尾多余的双引号
url = 'https://www.calorie-charts.info/food/all/banana'

s.headers.update(headers)
# 设置超时时间,避免无限等待
r = s.get(url, timeout=15)
print(r.text)

二、加快请求速度的优化点

  • 补充完整请求头:服务器可能会对请求头不全的请求做延迟处理,添加Accept、Accept-Language、Referer等字段,模拟真实浏览器的请求行为,大概率能减少响应延迟。
  • 设置超时时间:添加timeout参数,避免请求因网络或服务器问题无限挂起。
  • 禁用不必要的功能:如果不需要响应中的Cookie,可以在Session中关闭Cookie,或者使用stream=True分块接收响应(适合大页面)。

三、寻找数据来源的方法

如果页面没有明显的XHR/Fetch请求,试试这两种方式:

  1. 检查页面内嵌的Script标签:很多网站会把初始数据放在script标签里(比如以window.__DATA__或类似格式存储的JSON),可以直接从返回的HTML中提取这部分内容,不需要额外请求。
  2. 过滤Network面板的所有请求:刷新页面时,在Network面板勾选All而非仅XHR/Fetch,查看是否有JSON、CSV格式的静态资源请求,或者参数中包含banana、food的接口,有些网站会用普通GET请求返回数据而非XHR。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:26:27