Почему я получаю разные http ответы из разных мест? - PullRequest
0 голосов
/ 25 марта 2019

Я работаю над заданием, в котором мне нужно переписать сайт boxofficemojo.

Я закодировал все, и он прекрасно работает на моей локальной машине.

Есть около 19000 URL, которые мне нужно почистить.Поскольку это, очевидно, длительный процесс, я не хочу запускать его на своей локальной машине.Вместо этого я хочу запустить его на экземпляре aws ec2.

Экземпляр ec2 - это Ubuntu 18.04.Я проверил версии Python и библиотеки, используемые в скрипте, присутствуют или нет, и все.

Однако, если я попытаюсь

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

, это даст мне 503 ответа.Если я распечатываю текст ответа, он говорит: Мы сейчас обновляем сайт. Но на моем локальном компьютере работает то же самое.

Почему у меня такое странное поведение?в ec2.

Я попытался проверить интернет-соединение внутри экземпляра ec2, введя команду ping .Работает нормально.

1 Ответ

3 голосов
/ 25 марта 2019

Существуют публичные сайты и публичные API, которые специально блокируют вызовы от экземпляров ec2 (и, возможно, других облачных провайдеров).

Не исключено, что некоторые сайты, которые вы пытаетесь очистить, просто заносят в списки IP-адресов экземпляры ec2, чтобы сократить количество ботов, которые поглощают их ресурсы ... Я сталкивался с этим несколько раз., для нескольких сайтов.

API-интерфейс NBA stats - один из примеров, с которым я знаком, но я встречал и другие - сайты, которые вы просматриваете, могут быть некоторыми из них.

...