Python爬虫之urllib库详解
什么是urllib库
urllib库是Python内置的HTTP请求库,包含了一组简单的API,可以用来发送GET、POST、PUT、DELETE、HEAD等HTTP请求,支持处理URL、Cookie、代理、验证、浏览器标识等常见的HTTP请求需求。
urllib库的常见模块
urllib库包含了四个常用的模块,分别是:
- urllib.request:发送HTTP/HTTPS请求的模块。
- urllib.parse:解析和处理URL的模块。
- urllib.error:包含urllib.request产生的异常。
- urllib.robotparser:解析robots.txt文件的模块。
urllib库的使用
1. 发送GET请求
使用urllib库发送GET请求的示例代码如下:
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))
上面的代码先使用urllib.request.urlopen()
发送了一个GET
请求,并将返回的HTTP Response
对象赋值给了response
变量。然后使用read()
方法获取返回结果,并使用decode()
方法将结果转换为utf-8
格式的字符串输出。
2. 发送POST请求
使用urllib库发送POST请求的示例代码如下:
import urllib.parse
import urllib.request
data = {
'name': '张三',
'age': 20
}
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url='http://localhost:8080/api/user', data=data, method='POST')
response = urllib.request.urlopen(req)
print(response.read().decode('utf-8'))
上面的代码先定义了一个字典类型的数据data
,然后使用urllib.parse.urlencode()
方法将其转换为application/x-www-form-urlencoded
格式的字符串,并使用encode()
方法将其转换为bytes
类型的对象data
。然后使用urllib.request.Request()
方法创建一个Request
对象,传入URL、数据和请求方法等参数,最后将Request
对象传入urllib.request.urlopen()
方法发送请求,并将返回结果进行解析和输出。
结语
本文介绍了Python爬虫中常用的urllib库的详细使用方法,包括了发送GET和POST请求的示例代码,希望能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫之urllib库详解 - Python技术站