Ошибка заголовка urllib2: TypeError: аргумент sendall () 1 должен быть строкой или буфером, а не dict - PullRequest
2 голосов
/ 08 октября 2011
def download(url):
    print url
    user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
    headers = {'User-Agent' : user_agent }    
    request = urllib2.Request(url, headers)
    response = urllib2.urlopen(request)
    return response

Что я здесь не так делаю? Я использую точный пример из документов:

http://docs.python.org/howto/urllib2.html#headers

1 Ответ

7 голосов
/ 08 октября 2011

Вы не используете точный пример.В примере есть:

req = urllib2.Request(url, data, headers)

, а у вас есть:

request = urllib2.Request(url, headers)

Поскольку это позиционные аргументы, важно, чтобы вы оставляли их прямыми.Второй аргумент - это строка данных, которую вы должны указать:

request = urllib2.Request(url, "", headers)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...