Python urllib和Python3 urllib库是用来发送HTTP请求和处理响应的Python库,它们都可以实现HTTP请求和响应,但是Python3 urllib库在Python2 urllib库的基础上进行了改进,可以更好的处理HTTP请求和响应。
Python urllib库
Python urllib库是Python中用来处理HTTP请求和响应的库,它可以实现发送HTTP请求,接受响应,处理响应等功能。使用Python urllib库发送HTTP请求的方法如下:
import urllib.request url = 'http://www.example.com' response = urllib.request.urlopen(url)
使用urllib.request.urlopen()函数可以发送HTTP请求,参数url为请求的URL,函数返回一个HTTPResponse对象,可以通过该对象获取响应的内容,如下:
data = response.read()
使用response.read()方法可以读取响应的内容,返回的是一个字节串,如果需要获取响应的文本内容,可以使用decode()方法将字节串解码成文本:
html = data.decode('utf-8')
Python3 urllib库
Python3 urllib库是Python3中用来处理HTTP请求和响应的库,它在Python2 urllib库的基础上进行了改进,可以更好的处理HTTP请求和响应。使用Python3 urllib库发送HTTP请求的方法如下:
from urllib.request import Request, urlopen url = 'http://www.example.com' request = Request(url) response = urlopen(request)
使用urlopen()函数可以发送HTTP请求,参数request为Request对象,函数返回一个HTTPResponse对象,可以通过该对象获取响应的内容,如下:
data = response.read()
使用response.read()方法可以读取响应的内容,返回的是一个字节串,如果需要获取响应的文本内容,可以使用decode()方法将字节串解码成文本:
html = data.decode('utf-8')
除了可以发送HTTP请求,Python3 urllib库还提供了一些高级功能,如定义请求的头部,设置超时时间,设置代理等,具体使用方法如下:
- 定义请求头部:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'} request = Request(url, headers=headers)
- 设置超时时间:
timeout = 10 response = urlopen(request, timeout=timeout)
- 设置代理:
proxy_handler = urllib.request.ProxyHandler({'http': 'http://127.0.0.1:1080'}) opener = urllib.request.build_opener(proxy_handler) response = opener.open(request)
Python urllib和Python3 urllib库都可以用来发送HTTP请求和处理响应,但是Python3 urllib库在Python2 urllib库的基础上进行了改进,可以更好的处理HTTP请求和响应,提供了更多的高级功能,使用起来更加方便。