Python urlopen ничего не возвращает для сайтов Amazon - PullRequest
3 голосов
/ 04 сентября 2011

Я только начинаю писать Python и столкнулся с проблемой с urllib, который, казалось бы, уникален для Amazon.com.Если я сделаю что-то вроде:

pageIn = urllib.request.urlopen("http://www.google.com")
print(pageIn.read())

Он печатает XML из Google.Если я делаю то же самое, но с любым сайтом от Amazon (домашняя страница, страница конкретного продукта, что угодно), он печатает пустую строку.

Amazon - единственный сайт, для которого я нашел это, и я не понимаю, почему.Любые идеи?

РЕДАКТИРОВАТЬ - РЕШЕНО: Amazon блокировал мой код, потому что он не распознал источник;который по умолчанию является вашим номером версии Python.Изменяя версию в FancyURLopener, я смог заставить Amazon впустить меня. Код ниже теперь работает.

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())`
...