当使用 Python 中的 urllib2 发送 HTTP 请求时,我们可以伪造 HTTP 报头来隐藏自己的真实身份,或者增加一些额外的信息。下面介绍两种在 python 中使用 urllib2 伪造 HTTP 报头的方法。
方法一:使用 urllib2.Request
这种方法通过构造 urllib2.Request 对象,并将 HTTP 报头添加到该对象中来实现。步骤如下:
- 导入 urllib2 模块。
import urllib2
- 构造 Request 对象,并添加 HTTP 报头。
url = "http://www.example.com"
user_agent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
headers = {"User-Agent": user_agent, "Referer": "http://www.example.com/previous-page"}
request = urllib2.Request(url, headers=headers)
- 发送请求并读取响应。
response = urllib2.urlopen(request)
html = response.read()
示例代码如下:
import urllib2
url = "http://www.baidu.com"
user_agent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
headers = {"User-Agent": user_agent, "Referer": "http://www.google.com/"}
request = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(request)
html = response.read()
print(html)
方法二:使用 urllib2.build_opener
这种方法通过构造一个自定义的 urllib2.Opener 来实现。步骤如下:
- 导入 urllib2 模块。
import urllib2
- 构造自定义 Opener。
url = "http://www.example.com"
user_agent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
headers = {"User-Agent": user_agent, "Referer": "http://www.example.com/previous-page"}
opener = urllib2.build_opener()
opener.addheaders = [(key, value) for key, value in headers.items()]
response = opener.open(url)
html = response.read()
示例代码如下:
import urllib2
url = "http://www.baidu.com"
user_agent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36"
headers = {"User-Agent": user_agent, "Referer": "http://www.google.com/"}
opener = urllib2.build_opener()
opener.addheaders = [(key, value) for key, value in headers.items()]
response = opener.open(url)
html = response.read()
print(html)
通过上面两种方法,我们可以轻松地使用 urllib2 来伪造 HTTP 报头,达到隐藏身份、增加额外信息等目的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中使用urllib2伪造HTTP报头的2个方法 - Python技术站