在Python中发送头部
我有一个Python脚本,我想发送一些“假”的头部信息,这样我的应用程序就可以表现得像是使用Firefox浏览器一样。我该怎么做呢?
import urllib, urllib2, cookielib
username = '****'
password = '****'
login_user = urllib.urlencode({'password' : password, 'username' : username})
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
response = opener.open("http://www.***.com")
response = opener.open("http://www.***.com/login.php")
response = opener.open("http://www.***.com/welcome.php", login_user)
3 个回答
1
根据你的需求,如果你想让你的程序看起来像是在用Firefox浏览网页,仅仅设置用户代理(User-Agent)可能还不够(不过在大多数情况下,这样做应该是可以的)。为了让你的脚本看起来像是“正常”的网页浏览,你可能还需要设置一个合适的来源网址(Referer),并额外请求页面的其他内容,比如JavaScript、CSS、图片、Flash等。这是需要考虑的事情,不过可能不适合你具体的情况。
6
你需要更深入地了解一些底层的东西才能做到这一点。
request = urllib2.Request('http://stackoverflow.com')
request.add_header('User-Agent', 'FIREFOX LOL')
opener = urllib2.build_opener()
data = opener.open(request).read()
print data
这个代码没有经过测试。
7
在你的 opener
对象上使用 addheaders()
函数。
只需要在你创建好 opener 之后,开始打开网页之前,加上这一行代码:
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
http://docs.python.org/library/urllib2.html (这个链接在文档的底部)