Python 爬虫入门:基础类库与实战案例详解
1. 概述
网络爬虫(Web Crawler)是自动化抓取互联网信息的技术。在 Python 中,最基础的爬虫开发通常基于标准库 urllib,但实际工程中更推荐使用第三方库 requests 配合 BeautifulSoup 或 lxml 进行解析。本文将详细介绍从基础请求到高级反爬策略的完整流程。
2. 基础类库:urllib
2.1 引入与请求
Python 内置的 urllib 模块提供了处理 URL 的核心功能。
from urllib import request, parse
import json
# 定义目标 URL
url = "http://www.baidu.com"
# 发起请求,返回响应对象
response = request.urlopen(url)
2.2 读取响应内容
响应对象包含状态码、URL 和响应体等信息。
# 读取响应体(字节形式)
data_bytes = response.read()
# 解码为文本(注意编码格式,通常为 utf-8)
text = data_bytes.decode("utf-8")
print(text)
# 获取状态码
status_code = response.getcode()
# 获取最终请求地址(可能包含重定向)
final_url = response.geturl()
# 获取响应头
headers = response.getheaders()
2.3 写入文件
将抓取的网页源码保存至本地。
with open('baidu.html', 'w', encoding='utf-8') as fp:
fp.write(text)
2.4 URL 编码处理
在构造请求参数时,特殊字符需要进行 URL 编码。
# 单个参数编码
encoded_name = parse.quote("小鲁班")
# 多个参数编码
params_dict = {
"name": "肖",
"password": "213123 丽华",
"age": "五十岁"
}
base_url =
encoded_params = parse.urlencode(params_dict)
full_url = base_url + encoded_params


