在urllib2中进行GET请求并伪造User-Agent的问题
这段代码使用 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
使用:
req = urllib2.Request('http://www.google.fr', None, headers)
或者:
req = urllib2.Request('http://www.google.fr', headers=headers)