Python 爬虫库 urllib 使用详解
一、Python urllib 库概述
Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。它是 Python 标准库的一部分,无需额外安装。
Python3 的 urllib 包包含以下几个核心模块:
urllib.request- 打开和读取 URL。urllib.error- 包含 urllib.request 抛出的异常。urllib.parse- 解析 URL。urllib.robotparser- 解析 robots.txt 文件。
在实际开发中,主要使用每个模块的内置方法和函数。
二、urllib.request 模块
urllib.request 定义了一些打开 URL 的函数和类,包含授权验证、重定向、浏览器 cookies 等功能。它可以模拟浏览器的一个请求发起过程。
2.1 urlopen 函数
语法格式如下:
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
参数说明:
url:URL 地址。data:发送到服务器的其他数据对象,默认为 None(用于 POST 请求)。timeout:设置访问超时时间,防止程序无限挂起。cafile和capath:CA 证书及路径,使用 HTTPS 时需要用到。cadefault:已被弃用。context:ssl.SSLContext 类型,用来指定 SSL 设置。
示例:
import urllib.request
# 导入 urllib.request 模块
url = "https://www.baidu.com"
response = urllib.request.urlopen(url)
# 获取响应内容并解码
html = response.read().decode('utf-8')
print(html[:500]) # 仅打印前 500 字符
Response 对象属性与方法:
response 对象是 http.client.HTTPResponse 类型,主要包含以下方法:
read():读取整个网页内容,也可以指定读取的长度,如 read(300)。获取到的是二进制数据,通常需要 decode() 解码。readline():读取文件的一行内容。readlines():读取文件的全部内容,返回一个列表。info():返回 HTTPMessage 对象,表示远程服务器返回的头信息。


