1-自定义handler和使用urlopen方法得到的结果是一样的
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 构建一个HTTPHandler处理器对象,支持处理HTTP的请求
http_handler = urllib2.HTTPHandler()
# 调用build_opener()方法构建一个自定义的opener对象,参数是构建的处理器对象
opener = urllib2.build_opener(http_handler)
request = urllib2.Request("http://www.baidu.com/")
response = opener.open(request)
print response.read()
2-使用自定义handler并打开debug模式
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 构建一个HTTPHandler处理器对象,支持处理HTTP的请求
# 在HTTPHandler增加参数"debuglevel=1"将会自动打开Debug log 模式,
# 程序在执行的时候会打印收发包的信息
http_handler = urllib2.HTTPHandler(debuglevel=1)
# 调用build_opener()方法构建一个自定义的opener对象,参数是构建的处理器对象
opener = urllib2.build_opener(http_handler)
request = urllib2.Request("http://www.baidu.com/")
response = opener.open(request)
#print response.read()
以下是打开debug模式后的输出信息
send: 'GET / HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: www.baidu.com\r\nConnection: close\r\nUser-Agent: Python-urllib/2.7\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Bdpagetype: 1
header: Bdqid: 0xd8ca71d90005096c
header: Cache-Control: private
header: Content-Type: text/html
header: Cxy_all: baidu+f3c2f72031ddbf5ea97a886abbaf0a06
header: Date: Mon, 19 Aug 2019 12:23:25 GMT
header: Expires: Mon, 19 Aug 2019 12:23:14 GMT
header: P3p: CP=" OTI DSP COR IVA OUR IND COM "
header: Server: BWS/1.1
header: Set-Cookie: BAIDUID=02A2E1F679C740C48976DBF75CF586FD:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
header: Set-Cookie: BIDUPSID=02A2E1F679C740C48976DBF75CF586FD; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
header: Set-Cookie: PSTM=1566217405; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
header: Set-Cookie: delPer=0; path=/; domain=.baidu.com
header: Set-Cookie: BDSVRTM=0; path=/
header: Set-Cookie: BD_HOME=0; path=/
header: Set-Cookie: H_PS_PSSID=26522_1437_21106_29522_29518_29098_29567_29220_26350_29460_29589; path=/; domain=.baidu.com
header: Vary: Accept-Encoding
header: X-Ua-Compatible: IE=Edge,chrome=1
header: Connection: close
header: Transfer-Encoding: chunked