跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 爬虫实战:自动获取小说内容

以 Python 为例演示网络爬虫全流程。通过 requests 发送请求,lxml 解析 HTML,提取小说标题与正文并保存至本地。包含环境配置、请求伪装、XPath 解析、文件写入及章节循环遍历等核心步骤。强调技术学习用途及版权合规。

游戏玩家发布于 2026/3/23更新于 2026/10/2014K 浏览

Python 爬虫实战:自动获取小说内容

一、前言

在 Python 中,使用爬虫获取网络信息是一项非常实用的技能。本教程以自动获取小说为例,带你完整走一遍爬虫流程,让你对'发送请求 — 解析数据 — 保存内容'有清晰的理解。(注:本教程仅用于技术学习与交流,在进行任何网络爬取前,请遵循相关法律法规,尊重版权)

二、爬虫核心四步

一个基础的爬虫任务,通常可以拆解为以下四个关键步骤:

  1. 如何发送请求:使用 Python 库向服务器发起网络请求。
  2. 发送给谁:明确目标资源的 URL 地址。
  3. 怎么伪装自己:设置请求头,模拟正常浏览器行为,避免被识别为爬虫。
  4. 响应信息处理:接收服务器返回的数据,并从中提取有效内容。

三、环境准备

我们将使用两个核心库来完成这个任务:

  • 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 文件,方便离线阅读:

with open(f"{title}.txt", "w", encoding="utf-8") as f:
    f.write(title + "\n\n" + "".join(content_list))

6. 循环遍历,获取所有章节内容

URL 更新为下一章节的 URL 地址,再用 for 循环遍历输出:

urls = ["url1", "url2", "url3"]  # 替换为实际章节列表
for u in urls:
    # 执行上述请求与保存逻辑
    pass

五、完整可运行代码

整合上述步骤,即可得到完整的爬虫脚本。可根据实际需求调整循环次数或解析规则。

目录

  1. Python 爬虫实战:自动获取小说内容
  2. 一、前言
  3. 二、爬虫核心四步
  4. 三、环境准备
  5. 四、代码实现与详解
  6. 1. 引入依赖库
  7. 2. 定义目标与伪装
  8. 3. 发送请求与处理响应
  9. 4. 解析 HTML 提取内容
  10. 示例:根据实际网页结构调整 XPath
  11. 5. 保存到本地文件
  12. 6. 循环遍历,获取所有章节内容
  13. 五、完整可运行代码

更多推荐文章

查看全部
  • C++ Qt 网络编程实战:UDP、TCP 与 HTTP 应用
  • 写给一周岁儿子的信:关于成长与爱的期许
  • 如何系统地入门大模型技术
  • whisper.cpp 高性能语音识别推理实现
  • Llama-3.2-3B 实战:使用 Ollama 生成营销文案
  • OpenRouter 入门:统一接口调用 500+AI 模型实战
  • Spring AI Agent Skills 接入实战与原理分析
  • 归并排序非递归实现:自底向上的核心逻辑与代码解析
  • Spring AI + MCP 将后端服务改造成 MCP 服务实践
  • 机器人租赁场景下的多机同步执行方案与现场实录
  • AI 编程实战:Copilot 核心指令与开发效率提升指南
  • 基于 Playwright 的浏览器指纹伪装与一致性校验实战
  • Android 开发中 OOM 问题的常见原因与解决方案
  • 开源 AI 短剧工具:从小说到视频的自动化流水线
  • Ollama 架构详解与对话处理流程解析
  • AI 时代,为什么 “人人都是产品经理” 的时代才真正到来?
  • GPU 算力云服务的技术探索与 AIGC 应用支持
  • C++ 模板机制详解:参数、特化与分离编译
  • 基于 CTFd 与 Docker 搭建动态 CTF 竞赛靶场实战指南
  • 安装 Microsoft Visual C++ Build Tools 配置指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online