在 Heroku 上使用 Python 请求抓取网站时出现 403 禁止错误

时间:2021-01-27 18:17:30

标签: python heroku python-requests web-crawler http-status-code-403

我编写了一个爬虫脚本,它向“sci-hub.do”发送一个post请求,并且我已经将它设置为在 Heroku 上运行。但是当它尝试发送帖子或获取请求时,我主要收到 403 禁止消息。

奇怪的是,只有当该脚本在 Heroku 云上运行时才会发生这种情况,而当我在我的 PC 上运行它时,一切都很好,我得到了 200 状态代码。

我曾尝试使用会话,但没有奏效。 我还检查了该网站的 robots.txt 并将 User-Agent 标头设置为“Twitterbot/1.0”,但它仍然失败。

我做错了什么?为什么只有在 Heroku 上运行脚本时才会发生这种情况。

我很确定网络服务器正在将我的脚本检测为爬虫机器人并试图阻止它。但是为什么即使在添加了适当的“用户代理”之后?

1 个答案:

答案 0 :(得分:0)

尝试添加一个常用的用户代理,例如:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36

也许您需要为每个请求使用随机的 User-Agent。然后就可以安装和使用https://pypi.org/project/fake-useragent/