2010-08-25 9 views
7

Je ne peux pas sembler trouver comment faire anywere, je suis en train de définir plusieurs têtes avec le module de mécaniser de python, tels que:Python, mécaniser, syntaxe correcte pour définir plusieurs en-têtes?

br.addheaders = [('user-agent', ' Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3')] 
br.addheaders = [('accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')] 

Mais il semble que cela ne prend les dernières br.addheaders. Donc, il ne montre que l'en-tête 'accept', pas l'en-tête 'user-agent', ce qui me fait croire que chaque appel à 'br.addheaders' écrase tous les précédents appels .. Je n'arrive pas à comprendre la syntaxe inclure 2 ou plusieurs en-têtes, donc je serais très reconnaissant de toute aide ..

J'utilise ce site pour tester la sortie en-têtes:

http://www.ericgiguere.com/tools/http-header-viewer.html

Répondre

9

Selon http://wwwsearch.sourceforge.net/mechanize/doc.html#adding-headers, la syntaxe serait

br.addheaders = [('user-agent', ' Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3'), 
('accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')] 

C'est, faire une liste de tuples d'en-tête.

+0

merci .. J'ai essayé cela avant mais cela n'a pas fonctionné, peut-être que j'ai fait une autre erreur de syntaxe sans m'en rendre compte .. je vais essayer à nouveau .. Je dois marquer cette page api car c'est vraiment déroutant il (au moins pour moi) de la page principale mécanisée qui apparaît dans google – Rick

+0

qui fonctionne .. merci pour l'aide, question stupide de ma part – Rick

+2

Ce qui signifie, bien sûr, que vous pouvez ajouter d'autres en-têtes que vous pouvez ajouter des éléments à toute autre liste: 'br.addheaders.append ((" Accept-Language "," en-us, en "))' – jsbueno

Questions connexes