在日常阅读中,很多人喜欢将喜欢的网络小说下载为本地 txt 文件,方便随时翻阅。今天我们来聊聊如何用 Python 爬虫抓取小说网站,并将内容保存为本地 txt 文件。逻辑并不复杂,适合有一定基础的同学尝试。
一、前期准备:环境与工具
1. 安装 Python 环境
首先确保电脑已安装 Python(推荐 3.7 及以上版本),可从 Python 官网 下载安装,安装时记得勾选 'Add Python to PATH'以自动配置环境变量。
2. 安装必要库
本次爬虫主要依赖两个核心库:
requests:用于发送 HTTP 请求,获取网页内容;BeautifulSoup4:用于解析 HTML 页面,提取小说章节和内容。
打开命令行(Windows 下 Win+R 输入 cmd,Mac 打开终端),输入以下命令安装:
pip install requests beautifulsoup4
3. 选择目标小说网站
本次以免费小说测试网站(示例:https://www.xsbiquge.com/15_15338/,仅用于教学,请勿爬取付费或有版权保护的网站)为例,演示爬取小说《诡秘之主》的正文内容。
注意:爬取前需遵守网站
robots.txt协议(访问网站域名 +/robots.txt可查看),且不得用于商业用途,尊重版权方权益。
二、爬虫核心逻辑拆解
整个流程其实就三步:先访问目录页拿到所有章节链接,再逐个请求章节页提取正文,最后按顺序写入本地文件。这里的关键在于准确定位 HTML 结构,不同网站的标签可能差异很大。
三、手把手编写爬虫代码
新建一个 Python 文件(如 novel_crawler.py),我们直接看核心逻辑。
导入库与基础配置
首先导入必要的库,并设置好请求头。这里用 User-Agent 伪装成浏览器,防止被网站反爬机制直接拦截。
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"
}
爬取章节列表
接下来写个函数获取目录页里的章节标题和链接。这里要注意,HTML 结构是动态变化的,所以 find 方法里的参数需要根据实际网页调整,建议配合 F12 开发者工具查看。
def get_chapter_list():
"""获取所有章节的标题和链接"""
:
response = requests.get(catalog_url, headers=headers, timeout=)
response.encoding = response.apparent_encoding
soup = BeautifulSoup(response.text, )
chapter_list = soup.find(, class_=).find_all()
chapters = []
chapter chapter_list:
chapter_title = chapter.text
chapter_url = + chapter[]
chapters.append({: chapter_title, : chapter_url})
()
chapters
Exception e:
()

