2010-08-25 31 views
7

我似乎無法找到如何做到這一點anywere,我想設置與Python的機械化模塊多個頭,比如:Python,機械化,設置多個頭的正確語法?

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

但它似乎只需要最後br.addheaders。 。因此它只顯示'accept'頭,而不是'user-agent'頭,這使我相信每次調用'br.addheaders'都會覆蓋之前的任何調用。我無法將語法包括2名以上的頭,所以我將不勝感激任何幫助..

我使用這個網站來測試頭輸出:

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

回答

9

http://wwwsearch.sourceforge.net/mechanize/doc.html#adding-headers,語法將

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

也就是說,使頭部元組的列表。

+0

謝謝..我曾嘗試過,但它沒有工作,也許我做了一些其他語法錯誤沒有意識到它..會再試一次..我需要書籤該API頁面,因爲它真的很混亂如何到達它(至少對我來說)從谷歌 – Rick 2010-08-25 09:45:39

+0

工程中出現的主要機械化頁面..感謝您的幫助,我的部分愚蠢的問題 – Rick 2010-08-25 09:48:12

+2

這意味着,當然,您可以添加更多的標題,因爲您可以添加元素到任何其他列表:'br.addheaders.append((「Accept-Language」,「en-us,en」))' – jsbueno 2010-12-10 13:05:03