【发布时间】:2023-02-17 02:43:24
【问题描述】:
我正在尝试访问项目的https://www.hellofresh.com/menus 上加载的数据,这可以通过使用以下端点作为模板重建 API 端点来完成:https://www.hellofresh.com/_next/data/1.964.0/menus/2023-W01.json
我认为“1.964.0”是与 next.js 相关的某种内部版本号,“2023-W01”是返回特定一周膳食的密钥。因为“1.964.0”字符串是随机增加的,所以我通过菜单页HTML中的head标签查找最新的一个,存在为<meta content="1.964.0" property="version">。
但是,当使用 Python Requests 自动执行此字符串查找时,我有时会在运行脚本几次后得到不正确的旧字符串。在此示例中,它返回“1.961.0”,并且将该字符串放入端点不起作用。换句话说,我在浏览器中看到的 HTML 与 Python 中的 GET 请求提供的 HTML 之间存在差异。
奇怪的是,如果我多次重新运行请求脚本,它最终会得到正确的数字字符串(例如:1.964.0)并且没有问题,并且在没有对脚本进行任何更改的情况下发生这种情况。除了user-agent、referer和accept标头之外,我还尝试使用cache-control: no-cache、pragma: no-cache标头发送请求,无论标头组合如何,行为都是相同的。在这一点上我真的很抓狂,所以任何指向任何答案的东西都非常感谢。
【问题讨论】:
标签: python html web-scraping next.js python-requests