Python爬虫之urllib库常用方法用法总结大全
什么是urllib库
urllib是Python中处理URL(即网址、链接)的标准库。它主要包含四个模块:
- urllib.request:提供了最基本的构造HTTP请求的方法,可以用来模拟浏览器的请求,发送GET、POST等请求方式;
- urllib.error:包含urlopen()可能引发的异常,可以利用它来进行异常处理;
- urllib.parse:用于URL处理,常用的就是将URL解析成各个组成部分;
- urllib.robotparser:用于识别网站的robots.txt文件,判断哪些页面可以爬取,哪些不可以。
urllib库常用方法
urllib.request.urlopen()方法
urllib.request.urlopen()方法用于打开一个URL地址,返回的是类文件对象,可以进行文件操作。
import urllib.request
response = urllib.request.urlopen('https://www.baidu.com')
print(response.status) # 打印状态码
print(response.read()) # 打印网页内容
urllib.request.Request()方法
urllib.request.Request()方法用于构造请求,可以设置请求的方法、请求头等信息。
import urllib.request
url = 'https://www.baidu.com'
headers = {'User-Agent': 'Mozilla/5.0'}
req = urllib.request.Request(url=url, headers=headers, method='GET')
response = urllib.request.urlopen(req)
print(response.status) # 打印状态码
print(response.read()) # 打印网页内容
urllib.error.HTTPError异常
urllib.error.HTTPError是urlopen()可能引发的异常,可以利用它来进行异常处理。
import urllib.request
import urllib.error
url = 'https://www.baidu.com/not_existing_page'
try:
response = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
print(e.code, e.reason) # 打印状态码和原因
urllib.parse.urlencode()方法
urllib.parse.urlencode()方法用于将字典类型的数据编码成url请求参数形式。
import urllib.parse
params = {'name': 'Python爬虫', 'num': 100}
query_string = urllib.parse.urlencode(params)
print(query_string) # 输出name=Python%E7%88%AC%E8%99%AB&num=100
urllib.request.urlretrieve()方法
urllib.request.urlretrieve()方法用于下载url地址的内容到本地文件。
import urllib.request
url = 'https://www.baidu.com'
filename = 'baidu.html'
urllib.request.urlretrieve(url, filename)
示例1
import urllib.request
response = urllib.request.urlopen('https://www.baidu.com')
print(response.status)
print(response.read())
示例2
import urllib.request
import urllib.error
url = 'https://www.baidu.com/not_existing_page'
try:
response = urllib.request.urlopen(url)
except urllib.error.HTTPError as e:
print(e.code, e.reason)
以上就是urllib库常用方法的使用详解。