我正在使用axios和一个API(cowin api https://apisetu.gov.in/public/marketplace/api/cowin/cowin-public-v2),它对Web请求有很强的保护。当我在我的开发机器(Windows)上得到错误403时,我通过添加一个头文件“User-Agent”来解决它。当我将它部署到heroku时,我仍然得到同样的错误。
const { data } = await axios.get(url, {
headers: {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
},
})
1条答案
按热度按时间pxy2qtax1#
在头文件中使用假的用户代理可以帮助解决这个问题,但是您可能需要考虑其他变量。
例如,如果你正在发出多个HTTP请求,你可能希望有多个假的用户代理,然后随机化每个请求的用户代理。这可以帮助限制被检测到的scraper的变化。
如果这样仍然不起作用,你可以考虑进一步优化你的头文件。除了用随机的用户代理发送HTTP请求,你还可以通过添加更多的头文件来模仿浏览器的请求头文件,而不仅仅是“用户代理”--然后确保所选的用户代理与从其余头文件发送的信息一致。你可以查看here了解更多信息。
在该网站上,它不仅会提供如何优化您的标题与用户代理一致的信息,而且还提供了更多的解决方案,以防上述仍然是不成功的。
在我的情况下,我不得不绕过cloudflare。如果你将错误记录到终端,然后检查“server”键下是否显示“cloudflare”,你可以确定这是否也是你的情况。在这种情况下,你可以使用this文档获得进一步的帮助。