Ubuntu 和 Windows 上的不同抓取行为

Different crawling behavior on Ubuntu and Windows

这段代码检索 Google 电影页面的内容:

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

当我 运行 我的 Windows PC 上的剧本时,它正确地包含了在该剧院预定的电影。但是我尝试在 3 个不同的 Ubuntu 服务器上执行脚本,每次返回的内容都是格式正确的页面,表示当前没有安排电影。

您知道是什么导致了这种仅 3 行代码的行为差异吗?我也试过urllib.urlopen,输出是一样的。

它与 OS 本身无关,或者与 Python 一般无关。 我试图在浏览器中从 Windows 机器访问此 URL,并且还得到了一些类似于 "No films found" 的东西(使用 Google 翻译,因为我不会说法语) .

我怀疑这个 URL 对位置敏感。当您通过 Windows 机器访问它时,它设法找到您的位置(实际位置或根据您的 IP 估计的位置)。

当您尝试通过 Linux 机器访问它时,它无法确定您的位置(或者它确定了,并确定您的位置是 "wrong"),因此它不匹配任何剧院时间表。