在日常阅读中,很多人喜欢将喜欢的网络小说下载为本地 txt 文件,方便随时翻阅。今天就来聊聊如何用 Python 实现这个需求,把小说内容爬下来存成本地文档,逻辑并不复杂,新手也能快速上手。
一、前期准备:环境与工具
1. 安装 Python 环境
确保电脑已安装 Python(推荐 3.7 及以上版本),可通过官网下载安装。安装时记得勾选 'Add Python to PATH',这样能自动配置环境变量,省去后续很多麻烦。
2. 安装必要库
本次爬虫主要依赖两个核心库:
requests:负责发送 HTTP 请求,获取网页源码;BeautifulSoup4:用于解析 HTML 页面,精准提取小说章节和内容。
在命令行或终端中运行以下命令即可安装:
pip install requests beautifulsoup4
3. 选择目标网站
我们以一个免费小说测试网站为例(示例链接仅作教学演示,请勿爬取付费或有版权保护的内容)。假设我们要爬取《诡秘之主》的正文。
注意:爬取前务必遵守网站的
robots.txt协议,且不得用于商业用途,尊重版权方权益。
二、爬虫核心逻辑拆解
整个流程其实就三步:
- 访问目录页,拿到所有章节的标题和跳转链接;
- 逐个访问章节链接,提取具体的正文内容;
- 按顺序将标题 + 正文写入 txt 文件,保存到本地。
三、手把手编写爬虫代码
第一步:导入库并设置基础参数
新建一个 Python 文件(比如 novel_crawler.py),先写好基础框架。这里需要模拟浏览器访问,防止被网站识别为爬虫而拒绝请求。
import requests
from bs4 import BeautifulSoup
import time
# 目标小说目录页 URL(可替换为自己想爬的小说目录页)
catalog_url = "https://www.xsbiquge.com/15_15338/"
# 请求头:伪装成浏览器访问
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
这里的 User-Agent 很关键,可以通过搜索引擎查找自己的浏览器标识填入,避免触发反爬机制。
第二步:爬取章节列表(标题 + 链接)
接下来写个函数,专门负责抓取目录页里的章节信息。这一步的核心是定位 HTML 结构,不同网站的标签可能不一样,建议用浏览器开发者工具(F12)确认一下。
def get_chapter_list():
"""获取所有章节的标题和链接"""
try:
# 发送请求获取目录页内容
response = requests.get(catalog_url, headers=headers, timeout=10)
response.encoding = response.apparent_encoding
soup = BeautifulSoup(response.text, )
chapter_list = soup.find().find_all()
chapters = []
chapter chapter_list:
chapter_title = chapter.text
chapter_url = + chapter[]
chapters.append({: chapter_title, : chapter_url})
()
chapters
Exception e:
()

