2010-08-25 2 views
7

Ich kann nicht scheinen zu finden, wie diese anywere zu tun, ich bin versucht, mehrere Header mit Python mechanize Modul, wie zu setzen:Python, mechanisieren, richtige Syntax zum Setzen mehrerer Header?

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')] 

Aber es scheint, dass es nur den letzten br.addheaders nimmt. Es zeigt also nur den 'accept'-Header, nicht den' user-agent'-Header, was mich zu der Annahme verleitet, dass jeder Aufruf von 'br.addheaders' alle vorherigen Aufrufe dazu überschreibt. Ich kann die Syntax nicht nachvollziehen umfassen zwei oder mehr Header so dass ich stark jede Hilfe ..

ich diese Website Header Ausgabe zu testen, bin mit schätzen würde:

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

Antwort

9

Nach http://wwwsearch.sourceforge.net/mechanize/doc.html#adding-headers würde die Syntax sein

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')] 

Das heißt, eine Liste von Header-Tupeln machen.

+0

danke .. Ich versuchte das vorher, aber es hat nicht funktioniert, vielleicht habe ich einen anderen Syntaxfehler gemacht, ohne es zu merken .. werde es wieder versuchen .. Ich muss diese Seite api bookmarken, da es wirklich verwirrend ist, wie man kommt es (zumindest für mich) von der Haupt mechanize Seite, die in Google – Rick

+0

kommt, das funktioniert .. danke für die Hilfe, dumme Frage meinerseits – Rick

+2

Das bedeutet natürlich, dass Sie weitere Header hinzufügen können, wie Sie Elemente hinzufügen können zu jeder anderen Liste: 'br.addheaders.append ((" Accept-Language "," en-us, en "))' ' – jsbueno