开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3507|回复: 12
打印 上一主题 下一主题
收起左侧

[易源码分享] FictionDown 小说下载器 支持校对和广告过滤

[复制链接]
跳转到指定楼层
楼主
发表于 2020-2-19 15:34:50 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   浙江省杭州市
分享源码
界面截图:
是否带模块: 调用了模块
备注说明: -
本帖最后由 9a6c5609806a 于 2020-2-19 16:25 编辑

使用Golang编写,为命令行界面(CLI)程序,无GUIGithub地址: https://github.com/ma6254/FictionDown/

FictionDown

用于批量下载盗版网络小说,该软件仅用于数据分析的样本采集,请勿用于其他用途

该软件所产生的文档请勿传播,请勿用于数据评估外的其他用途

License
release_version
last-commit
Download Count

godoc
QQ 群

Go
travis-ci
Go Report Card

特性

  • 以起点为样本,多站点多线程爬取校对
  • 支持导出 txt,以兼容大多数阅读器
  • 支持导出 epub(还有些问题,某些阅读器无法打开)
  • 支持导出 markdown,可以用 pandoc 转换成 epub,附带 epub 的metadata,保留书本信息、卷结构、作者信息
  • 内置简单的广告过滤(现在还不完善)
  • 用 Golang 编写,安装部署方便,可选的外部依赖:PhantomJS、Chromedp
  • 支持断点续爬,强制结束再爬会在上次结束的地方继续

站点支持

  • 是否正版:✅ 为正版站点 ❌ 为盗版站点
  • 是否分卷:✅ 章节分卷 ❌ 所有章节放在一个卷中不分卷
  • 站内搜索:✅ 完全支持 ❌ 不支持 ❔ 站点支持但软件未适配 ⚠️ 站点支持,但不可用或维护中 ⛔ 站点支持搜索,但没有好的适配方案(比如用 Google 做站内搜索)
站点名称 网址 是否正版 是否分卷 支持站内搜索 代码文件
起点中文网 www.qidian.com site\qidian.go
笔趣阁 www.biquge5200.cc site\biquge.go
笔趣阁 5200 www.bqg5200.com site\biquge2.go
笔趣阁 www.biqiuge.com ⚠️ site\biquge3.go
顶点小说 www.booktxt.net site\dingdian1.go
新八一中文网 www.81new.com site\81new.go
书迷楼 www.shumil.co site\shumil_co.go
完本神站 www.wanbentxt.com site\wanbentxt_com.go

使用注意

  • 起点和盗版站的页面可能随时更改,可能会使抓取匹配失效,如果失效请提 issue
  • 生成的 EPUB 文件可能过大,市面上大多数阅读器会异常卡顿或者直接崩溃
  • 某些过于老的书或者作者频繁修改的书,盗版站都没有收录,也就无法爬取,如能找此书可用的盗版站请提 issue,并写出书名和正版站链接、盗版站链接

工作流程

  1. 输入起点链接
  2. 获取到书本信息,开始爬取每章内容,遇到 vip 章节放入Example中作为校对样本
  3. 手动设置笔趣阁等盗版小说的对应链接,tamp字段
  4. 再次启动,开始爬取,只爬取 VIP 部分,并跟Example进行校对
  5. 手动编辑对应的缓存文件,手动删除广告和某些随机字符(有部分是关键字,可能会导致 pandoc 内存溢出或者样式错误)
  6. conv -f md生成 markwown
  7. 用 pandoc 转换成 epub,pandoc -o xxxx.epub xxxx.md

Example

> ./FictionDown --url https://book.qidian.com/info/3249362 d # 获取正版信息

# 有时会发生`not match volumes`的错误,请启用Chromedp或者PhantomJS
# Use Chromedp
> ./FictionDown --url https://book.qidian.com/info/3249362 -d chromedp d
# Use PhantomJS
> ./FictionDown --url https://book.qidian.com/info/3249362 -d phantomjs d

> vim 一世之尊.FictionDown # 加入盗版小说链接
> ./FictionDown -i 一世之尊.FictionDown d # 获取盗版内容
# 爬取完毕就可以输出可阅读的文档了
> ./FictionDown -i 一世之尊.FictionDown conv -f txt
# 转换成epub有两种方式
# 1.输出markdown,再用pandoc转换成epub
> ./FictionDown -i 一世之尊.FictionDown conv -f md
> pandoc -o 一世之尊.epub 一世之尊.md
# 某些阅读器需要对章节进行定位,需要加上--epub-chapter-level=2
> pandoc -o 一世之尊.epub --epub-chapter-level=2 一世之尊.md
# 2.直接输出epub(调用Pandoc)
> ./FictionDown -i 一世之尊.FictionDown conv -f epub

现在支持小说站内搜索,可以不用手动填入了

> ./FictionDown --url https://book.qidian.com/info/3249362 d # 获取正版信息

# 有时会发生`not match volumes`的错误,请启用Chromedp或者PhantomJS
# Use Chromedp
> ./FictionDown --url https://book.qidian.com/info/3249362 --driver chromedp d
# Use PhantomJS
> ./FictionDown --url https://book.qidian.com/info/3249362 --driver phantomjs d

> ./FictionDown -i 一世之尊.FictionDown s -k 一世之尊 -p # 搜索然后放入
> ./FictionDown -i 一世之尊.FictionDown d # 获取盗版内容
# 爬取完毕就可以输出可阅读的文档了
> ./FictionDown -i 一世之尊.FictionDown conv -f txt
# 转换成epub有两种方式
# 1.输出markdown,再用pandoc转换成epub
> ./FictionDown -i 一世之尊.FictionDown conv -f md
> pandoc -o 一世之尊.epub 一世之尊.md
# 2.直接输出epub(某些阅读器会报错)
> ./FictionDown -i 一世之尊.FictionDown conv -f epub

未实现

  • 爬取正版的时候带上Cookie,用于爬取已购买章节
  • 支持 晋江文学城
  • 支持 纵横中文网
  • 支持有毒小说网
  • 支持刺猬猫(即“欢乐书客”)
  • 整理 main 包中的面条逻辑
  • 整理命令行参数风格
  • 完善广告过滤
  • 简化使用步骤
  • 优化 log 输出
  • 对于特殊章节,支持手动指定盗版链接或者跳过忽略
  • 外部加载匹配规则,让用户可以自己添加正/盗版源
  • 支持章节更新
  • 章节匹配过程优化

Usage

NAME:
   FictionDown - https://github.com/ma6254/FictionDown

USAGE:
    [global options] command [command options] [arguments...]

AUTHOR:
   ma6254 <[email protected]>

COMMANDS:
     download, d, down  下载缓存文件
     check, c, chk      检查缓存文件
     edit, e            对缓存文件进行手动修改
     convert, conv      转换格式输出
     pirate, p          检索盗版站点
     search, s          检索盗版站点
     help, h            Shows a list of commands or help for one command

GLOBAL OPTIONS:
   -u value, --url value     图书链接
   --tu value, --turl value  资源网站链接
   -i value, --input value   输入缓存文件
   --log value               log file path
   --driver value, -d value  请求方式,support: none,phantomjs,chromedp
   --help, -h                show help
   --version, -v             print the version

安装和编译

程序为单执行文件,命令行 CLI 界面

包管理为 gomod

go get github.com/ma6254/FictionDown

交叉编译这几个平台的可执行文件:linux/arm linux/amd64 darwin/amd64 windows/amd64

make multiple_build









补充内容 (2020-2-20 14:06):
补充下已编译好的可执行文件,TX微云链接:https://share.weiyun.com/5l6rRtN

评分

参与人数 2好评 +2 精币 +6 收起 理由
う网淅乄 + 1 + 4 支持开源~!感谢分享
llxx123 + 1 + 2 新技能已get√

查看全部评分


签到天数: 1 天

13
发表于 2021-8-4 00:44:37 | 只看该作者   广东省广州市
技能牛笔啊
回复 支持 反对

使用道具 举报

结帖率:50% (3/6)
12
发表于 2021-8-2 15:48:14 | 只看该作者   云南省西双版纳傣族自治州
666666666666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 18 天

11
发表于 2021-2-5 08:35:13 | 只看该作者   浙江省绍兴市
路过围观一下,顺便帮顶
回复 支持 反对

使用道具 举报

结帖率:44% (4/9)
10
发表于 2021-2-4 17:55:35 | 只看该作者   河南省商丘市
666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

9
 楼主| 发表于 2020-2-25 20:55:55 | 只看该作者   德国
列明 发表于 2020-2-24 22:09
不是易語言的呀!

是的,Golang的
回复 支持 反对

使用道具 举报

8
 楼主| 发表于 2020-2-25 20:55:17 | 只看该作者   德国
啸龙在天 发表于 2020-2-25 16:50
运行直接闪退,86wind7是什么原因啊?

命令行CLI的
回复 支持 反对

使用道具 举报

结帖率:70% (26/37)
7
发表于 2020-2-25 16:50:47 | 只看该作者   陕西省西安市
运行直接闪退,86wind7是什么原因啊?
回复 支持 反对

使用道具 举报

6
发表于 2020-2-24 22:09:18 | 只看该作者   陕西省榆林市
不是易語言的呀!
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 16 天

地下
发表于 2020-2-22 10:05:33 | 只看该作者   江苏省苏州市
66666   用go语言写的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表