为什么我从不同的位置获得不同的http响应?

问题描述 投票:0回答:1

我正在开展一项任务,我需要网站剪贴簿boxofficemojo网站。

我编写了一切,它在我的本地机器上工作得非常好。

我需要抓大约19000个网址。由于这显然是一个耗时的过程,我不想在我的本地机器上运行它。相反,我想在aws ec2实例上运行它。

ec2实例是Ubuntu 18.04。我已经验证了python版本,脚本中使用的库是否存在以及所有内容。

但是,如果我试试

requests.get('http://www.boxofficemojo.com')

它给了我503回复。如果我打印响应文本,则表示我们正在更新站点。但同样的事情是在我的本地机器上工作。

为什么我在ec2实例中得到这种奇怪的行为。

我尝试通过发出ping命令测试ec2实例中的Internet连接。它工作正常。

python amazon-web-services amazon-ec2 web-scraping python-requests
1个回答
3
投票

有公共站点和公共API专门阻止来自ec2实例(可能还有其他云提供商)的呼叫。

你试图抓住的一些网站并不是不可能的,只是将ec2实例ip范围列入黑名单以减少耗尽资源的“机器人”......我已经多次遇到过几次这样的网站。

NBA统计数据api是我熟悉的一个例子,但我也遇到过其他人 - 你正在抓的网站也可能是其中的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.