首页 > 解决方案 > 有没有办法从 Node fetch 请求公共网站的内部 API?

问题描述

在我意识到我可以直接获取网站的 API 而不必渲染我不需要的东西之前,我正在尝试抓取动态网站并使用 Puppeteer 和 Node.js。通过查看 Chrome 开发人员工具的“网络”选项卡,我可以找到返回所需数据的确切端点。它适用于我试图抓取的大多数网站,但对于某些网站,尤其是 POST 请求,API 返回“403:禁止”错误代码。

如果我直接从 Chrome 控制台执行 fetch-request,API 会返回成功。但是,当我使用 node-fetch 从不​​同的选项卡、邮递员或节点尝试时,我得到“403:禁止”。

我尝试复制从网站自然发送的确切标头,并且尝试将“来源”和“引用”标头明确设置为网站地址,但无济于事。

这仅仅是一种无法破坏的安全措施,还是有办法诱使 API 认为请求来自他们自己的网站?

标签: node.jshttprequestfetch

解决方案


推荐阅读