智能小说抓取工具 V6:自动翻页、分页补全、章节号解析、内存监控、断点续抓。使用 curl+BeautifulSoup 抓取笔趣阁等网站,输出格式化 TXT。默认每 10 章合并为一份文档,避免文件碎片。自动检测分页并补全,智能过滤非小说内容(作者感言、抽奖等)。
Novel Scraper Pro 是智能小说抓取工具,支持自动翻页、分页补全、章节号解析、内存监控、中断续抓等功能。 使用 curl+BeautifulSoup 抓取笔趣阁等小说网站,输出格式化 TXT 文件。
bash
# 安装
clawhub install novel-scraper-pro
# 单章抓取
python3 scripts/scraper.py --url "https://www.bqquge.com/4/1962"
# 批量抓取(1-100 章)
python3 scripts/scraper.py --chapters "1-100" --book "书名"
# 中断续抓(默认开启)
python3 scripts/scraper.py --chapters "1-100" --book "书名"
# 中途 Ctrl+C 后,再次运行相同命令会自动从断点继续
功能说明✅ 章节号自动解析从标题提取章节号,自动修正 URL 推算错误✅ 分页自动检测检测"下一页"链接,自动补全分页(最多 5 页)✅ 内容质量验证段落数检查、结束标记检测✅ 非小说内容跳过智能判断并跳过作者感言、抽奖预告等✅ 目录页 fallback连续失败 2 次自动切换目录页模式✅ 连续性检查缺章检测与警告✅ 缓存系统章节级缓存,重复抓取秒级返回✅ 合并保存每 10 章合并为一个文件
功能默认状态说明🧠 内存监控✅ 开启超过 2500MB 自动 GC 并等待💾 中断续抓✅ 开启进度自动保存,可随时中断续抓🌐 SPA 支持❌ 关闭--force-spa 启用浏览器抓取
参数说明示例--url单章 URL--url "https://..."``--urls多章 URL(逗号分隔)--urls "url1,url2,..."``--chapters章节号范围--chapters "1-100"``--book / -b书名--book "书名"``--merge-interval每 N 章合并(默认 10)--merge-interval 10
参数说明--strict严格质量验证(字符数<1000 警告)-v / --verbose详细日志输出
参数说明默认--no-memory-monitor关闭内存监控开启--no-resume关闭中断续抓开启--force-spa强制使用浏览器抓取 SPA 网站关闭
bash
# 抓取第 1-100 章
python3 scripts/scraper.py --chapters "1-100" --book "没钱修什么仙"
# 输出:
# novels/没钱修什么仙_第 1-10 章.txt
# novels/没钱修什么仙_第 11-20 章.txt
# ...
bash
# 开始抓取 500 章
python3 scripts/scraper.py --chapters "1-500" --book "书名"
# 中途 Ctrl+C 中断
# 再次运行,自动从断点继续
python3 scripts/scraper.py --chapters "1-500" --book "书名"
# 输出:✅ 跳过已完成 237 章
bash
# 自动检测并补全分页章节
python3 scripts/scraper.py --chapters "1-100" --book "书名"
# 输出:
# 📄 检测到 3 个分页章节,自动补全...
# ✅ 补全完成,共 156 段
bash
# 强制使用浏览器抓取 SPA 网站
python3 scripts/scraper.py --url "https://spa-novel.com/chapter/1" --force-spa
bash
# 抓取目录页,生成章节 URL 映射
python3 scripts/fetch_catalog.py
bash
# 从目录文件提取指定章节范围的 URL
python3 scripts/extract_urls.py 1 100
bash
# 合并已抓取的分散文件并检查缺失
python3 scripts/merge_novels.py --book "书名" --range 1 100
抓取的小说保存在: ~/.openclaw/workspace/novels/
文件名格式: 书名_第 X-Y 章.txt
bash
pip install beautifulsoup4
bash
python3 scripts/scraper.py --chapters "1-100" --book "书名" --no-memory-monitor
bash
python3 scripts/scraper.py --chapters "1-100" --book "书名" --no-resume
bash
rm ~/.openclaw/workspace/skills/novel-scraper-pro/state/progress.json
python3 scripts/scraper.py --chapters "1-100" --book "书名"
bash
# 缓存位置
/tmp/novel_scraper_cache/
# 清理缓存
rm -rf /tmp/novel_scraper_cache/*