Python 爬虫实战:自动获取小说内容
一、前言
在 Python 中,使用爬虫获取网络信息是一项非常实用的技能。本教程以自动获取小说为例,带你完整走一遍爬虫流程,让你对'发送请求 — 解析数据 — 保存内容'有清晰的理解。(注:本教程仅用于技术学习与交流,在进行任何网络爬取前,请遵循相关法律法规,尊重版权)
二、爬虫核心四步
一个基础的爬虫任务,通常可以拆解为以下四个关键步骤:
- 如何发送请求:使用 Python 库向服务器发起网络请求。
- 发送给谁:明确目标资源的 URL 地址。
- 怎么伪装自己:设置请求头,模拟正常浏览器行为,避免被识别为爬虫。
- 响应信息处理:接收服务器返回的数据,并从中提取有效内容。
三、环境准备
我们将使用两个核心库来完成这个任务:
requests:用于发送 HTTP 请求,获取网页源代码。lxml:用于高效解析 HTML、XML 文档,提取我们需要的数据。
在开始编码前,请先在终端执行以下命令安装依赖:
pip install requests lxml
四、代码实现与详解
1. 引入依赖库
在 Python 脚本的开头,导入我们需要的库:
import requests
from lxml import etree
2. 定义目标与伪装
为了成功获取数据,我们需要明确目标 URL,并'伪装'成浏览器:
url = "目标章节链接"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ..."
}
需要注意的是,User-Agent 需要在任意网页源码里面获取真实值。
3. 发送请求与处理响应
使用 requests.get() 发送请求,并处理返回的结果:
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
html = response.text
4. 解析 HTML 提取内容
使用 lxml 和 XPath 语法,从杂乱的 HTML 中精准提取小说标题和正文。
需要注意的是,要提前安装好 XPath 辅助工具(如浏览器扩展程序),以便定位元素路径。
tree = etree.HTML(html)
# 示例:根据实际网页结构调整 XPath
title = tree.xpath('//h1/text()')[0]
content_list = tree.xpath('//div[@class="content"]/text()')
5. 保存到本地文件
将提取到的小说内容保存为本地 TXT 文件,方便离线阅读:
(, , encoding=) f:
f.write(title + + .join(content_list))

