我刚刚开始编写Python,并且遇到了urllib看似亚马逊独有的问题。如果我这样做:
pageIn = urllib.request.urlopen("http://www.google.com")
print(pageIn.read())
它从Google打印XML。如果我做同样的事情,但与亚马逊的任何网站(主页,特定产品页面,任何东西),它打印一个空字符串。
亚马逊是我发现此唯一的网站,我不明白为什么。有什么想法吗?
编辑 - 解决: 亚马逊阻止了我的代码,因为它无法识别来源;默认情况下,它是您的Python版本号。通过更改FancyURLopener中的版本,我能够让亚马逊让我进来。下面的代码现在可以使用。
from urllib.request import FancyURLopener
class MyOpener(FancyURLopener):
version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
myopener = MyOpener()
page = myopener.open('http://www.amazon.com/')
print(page.read())`