2016-07-29 4 views
0

Этот кусок кода извлекает содержимое страницы Google Фильмы:Different поведение ползать на Ubuntu и Windows,

import urllib2 
f = urllib2.urlopen("https://www.google.com/movies?hl=fr&tid=4f451a87a71bfa51&date=0") 
print(f.read()) 

Он правильно содержит фильмы, запланированные в этом театре, когда я запускаю скрипт на моем компьютере Windows. Но я попытался выполнить сценарий на трех разных серверах Ubuntu, и каждый раз, когда возвращаемый контент является хорошо сформированной страницей, в которой говорится, что в настоящее время нет запланированных фильмов.

Вы знаете, что может вызвать эту разницу в поведении, всего 3 строки кода? Я также пробовал urllib.urlopen, и результат тот же.

ответ

1

Это не имеет ничего общего с самой ОС или с Python вообще. Я попытался получить доступ к этому URL-адресу с Windows-машины в браузере, а также получил что-то вроде строк «Нет фильмов» (используется Google Translate, поскольку я не говорю по-французски).

Я подозреваю, что этот URL-адрес чувствителен к местоположению. Когда вы обратились к нему через вашу машину Windows, ей удалось найти ваше местоположение (фактическое местоположение или оценку на основе вашего IP-адреса).

Когда вы пытались получить доступ к нему через свои Linux-машины, он не смог определить ваше местоположение (или он сделал это и решил, что ваше местоположение «неправильно»), поэтому оно не соответствует какому-либо графику в кинотеатрах.

+0

Интересно! Как оно определило мое местоположение, оно основано только на IP? Есть ли способ обхода, который можно сделать, чтобы заставить скрипт работать, например, подделка IP или местоположения? – Arnaud

+0

@Arnaud Это, скорее всего, геолокация на основе IP. Вы можете «подделать» свой IP-адрес с помощью VPN или прокси-сервера. Поиск Google на этих условиях должен быть выключен в правильном направлении. – DeepSpace

Смежные вопросы