在Python中发送头部

7 投票
3 回答
9405 浏览
提问于 2025-04-15 11:09

我有一个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 (这个链接在文档的底部)

撰写回答