Правильно ли я использую заголовки в Python Twisted с использованием getPage? - PullRequest
1 голос
/ 08 октября 2011

Ниже приведен мой обратный вызов для извлечения страницы с использованием витой.

     client.getPage(iUrl,headers,method='GET',cookies=cj).addCallback(self.processPage,iUrl).addErrback(self.printError,iUrl)

Вот формат для моих заголовков.

headers = Headers({'content-type': ['text/html; charset=utf-8'], 'user-agent': ["Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11'"]})

Я знаю, что пользовательский агент работает, если я использую urllib2, потому что я могу извлечь поля, требующие заголовка.Использование этого заголовка в витой не работает, и я подозреваю, как я использую заголовки в витой.Итак, как правильно указать заголовок в моем коде?

Спасибо

Ответы [ 2 ]

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

Параметр headers для twisted.web.client.getPage принимает dict, а не twisted.web.http_headers.Headers экземпляр.

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

HTTPClientFactory (используется внутри getPage) сигнатура конструктора выглядит следующим образом:

3       def __init__(self, url, method='GET', postdata=None, headers=None,
204                  agent="Twisted PageGetter", timeout=0, cookies=None,
205                  followRedirect=1):

, поэтому попробуйте передать заголовки как ключевое слово param:

client.getPage(iUrl,method='GET',cookies=cj, headers=headers)...

сами заголовки выглядят вполне нормально для меня.

...