在python中发送标题

时间:2009-04-17 20:00:46

标签: python post http-headers

我有以下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 个答案:

答案 0 :(得分:6)

使用addheaders()对象上的opener功能。
在开始打开页面之前,只需在创建开场白之后添加这一行:

opener.addheaders = [('User-agent', 'Mozilla/5.0')]

http://docs.python.org/library/urllib2.html(它位于本文档的底部)

答案 1 :(得分:5)

你必须得到更低级别才能做到这一点。

request = urllib2.Request('http://stackoverflow.com')
request.add_header('User-Agent', 'FIREFOX LOL')
opener = urllib2.build_opener()
data = opener.open(request).read()
print data

未经测试。

答案 2 :(得分:1)

FWIW,根据您想要模仿Firefox的精确程度,设置User-Agent可能还不够(尽管这对大多数情况来说可能已经足够)。为了使您的脚本看起来像“正常”的Web浏览,您可能需要设置适当的Referer并对页面内容的其余部分(Javascript / CSS / Images / Flash /等)发出其他请求。有些事情,但可能不适合您的特定情况。