Python, mechanize,设置多个请求头的正确语法?

8 投票
1 回答
7929 浏览
提问于 2025-04-16 03:16

我在网上找不到怎么做这个的办法。我想用Python的mechanize模块设置多个请求头,比如:

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'都会覆盖之前的设置。我搞不清楚怎么写语法才能同时包含两个或更多的请求头,所以非常希望能得到一些帮助。

我正在使用这个网站来测试请求头的输出:

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

1 个回答

11

根据 这个链接,语法应该是这样的:

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

也就是说,你需要创建一个包含头部信息的列表,每个头部信息用一个小组表示。

撰写回答