自动搜索小说,按章节下载为.txt
发布于 8 年前 作者 a316523235 6848 次浏览 来自 分享

git clone

https://github.com/a316523235/getbook.git

功能

该项目主要是用于采集在线小说,按章节将小说下载为.txt文件

实现功能

1、由于采集的网站为每个访问者配置了不同的key。故首次运行时抓取key,并将key保存在本地配置文件中,以便下次使用。

2、搜索小说,名称匹配时直接开始按目录章节下载小说。 匹配时列出相似小说。

3、本地保存已下载小说,下次搜索同名小说时,可直接获取小说目录地址,并跳过已存在的章节。

config.json说明

1、domain: 网站的地址 (请勿修改)

2、searchId: 网站所需的key (首次运行时自动获取)(请勿修改)

3、searchUrl: 网站的小说搜索页面 (请勿修改)

4、isUseCache: 搜索小说时是判断本地已有的小说,true仅更新新章节, false全部从新下载 (可修改)

5、nextMinite: 抓取每章节内容的时间间隔,单位(秒) (防止被屏蔽)(可修改,建议大于10)

6、isInit: 配置信息是否已经初始化,主要用于判断是获已取到key (修改为false时,下次运行会重新获取key)

待实现功能

1、一次指下载多本小说

2、整本小说下载完后,将所有.txt文件打包为rar文件

29 回复

顺便问问,node.js有什么好用的rar打包模块

另外申请下加精华, 虽然代码不是高深。 不过有考虑到比较多的细节, 我觉得很合适新的学习用。

zip-folder

3Q 我去看下

我现在的下载机制是 第一章完成后timeout 10秒后去下载第二章。

我在想这样会不会更好:一开始就把下载所有章节的事件安排后,不管完成只启动下载某章节的任务,后续异步操作,每间隔10秒启动一个章节事件。

@a316523235 为何不是先爬所有下载任务,然后异步下载。。。。

这个小说搜索是在哪个网站搜的

是先爬所有下载任务的, 我是先访问了小说目录页面,获取了所有章节地址再开始的。 不过在分配下载任务方面思路不是很清晰

在config.json里面有写

更新: 1、app.js中的串行事件,改为通过aysnc控制执行

提示:之前方法比较别扭,改下免得带坏新手

@a316523235 child_process可乎。。。

按章节…反人类啊…

应该是可选章节范围吧.

@reverland 是用child process做每章的下载吗,每章都做个子线程会不会太多了

我爬过笑话 就不用每次点下一章 下一章了。

@ystyle 额 这个建议不错。 我觉得可以两个可选参数 启始章节、章节数量

@longFeiLi 我是之前有本小说只在那个网站上有更新,就想弄一个。 后面还有打算做更新提醒

@longFeiLi 笑话这个挺不错的。 笑话都很短,点下一章很麻烦

@CarlosRen 不好意思没注意点回复,直接放在了楼下。

@oero 不好意思没注意点回复,直接放在了楼下。

@a316523235 是指压缩。。。

@reverland 明白了, 想法很好。 压缩的时候开个子线程确实比较好。

8个空格缩进。。。lz显示器一定很大。。。

@reverland 其实我是用tab缩进的(4空格),在编辑器下也是这样。 在github上不知道为什么就显示为8空格

没看明白支持爬哪些小说网站?
难道都支持?

@FrankFan 没那么强的。目前只支持一个网站。 不同的网站要做不同的处理

2015-12-19 00:54更新内容: 1、小说名称由命令输入,改为启动前写在robotBook.txt中,并支持多本小说串行(即一本完成才进入下一本)下载 2、章节下载时记录错误次数,超过3章出错则跳过该小说,下载下一本小说。

2015-12-21 23:18更新内容: 更新为可选章节范围(即添加可选范围,见14楼意见)

2016-01-08 12:00 更新内容: 添加超时判断 (谢谢论坛内的朋友提供的技术帮助)

回到顶部