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


person Rick    schedule 25.08.2010    source источник


Ответы (1)


Согласно 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')]

То есть составьте список кортежей заголовков.

person Seth Difley    schedule 25.08.2010
comment
спасибо .. Я пробовал это раньше, но это не сработало, возможно, я сделал другую синтаксическую ошибку, не осознавая этого .. попробую еще раз .. Мне нужно добавить эту страницу api в закладки, так как это действительно сбивает с толку, как до нее добраться (на по крайней мере для меня) с главной страницы механизации, которая появляется в Google - person Rick; 25.08.2010
comment
Это, конечно, означает, что вы можете добавлять дополнительные заголовки, как вы можете добавлять элементы в любой другой список: br.addheaders.append(("Accept-Language", "en-us,en")) - person jsbueno; 10.12.2010
comment
Я добавил заголовок с помощью этого метода, но после br.open (url), когда я проверяю br.request.headers, он возвращает OrderedDict ([]). Есть идеи, почему это пусто? - person brainLoop; 01.06.2020