Проблема с выполнением запроса GET и подделкой User-Agent в urllib2 - PullRequest
1 голос
/ 01 августа 2010

С этим кодом urllib2 делает GET-запрос:

#!/usr/bin/python
import urllib2
req = urllib2.Request('http://www.google.fr')
req.add_header('User-Agent', '')
response = urllib2.urlopen(req)

С этим (что почти совпадает) POST-запросом:

#!/usr/bin/python
import urllib2
headers = { 'User-Agent' : '' }
req = urllib2.Request('http://www.google.fr', '', headers)
response = urllib2.urlopen(req)

Мой вопрос:как сделать запрос GET со вторым стилем кода?

В документации (http://docs.python.org/release/2.6.5/library/urllib2.html) сказано, что заголовки

должны быть словарем и будут рассматриваться какесли add_header () вызывался с каждым ключом и значением в качестве аргументов

Да, за исключением того, что для использования параметра headers необходимо передать data , и когда данные передаются, запрос становится POST.

Любая помощь будет принята с благодарностью.

1 Ответ

4 голосов
/ 01 августа 2010

Использование:

req = urllib2.Request('http://www.google.fr', None, headers)

или

req = urllib2.Request('http://www.google.fr', headers=headers)
...