Greasy Fork is available in English.

随手小说下载

带图形化界面的小说下载器。任意网站,自动识别任何目录列表,自动识别正文,自由下载,简单直观。

作者
ythong
日安装量
9
总安装量
8,534
评分
9 2 1
版本
0.4.1.6
创建于
2022-09-09
更新于
2022-11-27
许可证
MIT
适用于
所有网站

随手小说下载使用说明


hoothin怠惰小说下载器启发,开始编写本脚本。

特点

  • 图形界面,可以直观看到要下载的目录列表,排序,删除等;
  • 目录项不一定要有关键字(如第一章等),会自动查找包含最多链接的目录列表;
  • 自动获取目录列表有误时,可手动点击目录项,自己指定正确的目录列表;
  • 可自定义网站配置,配置信息可以保存以备下次使用。

适用性

本脚本可下载任意网站的小说或其他正文。但一般只适合下载那些非动态加载的网站。否则需要自定义网站规则,不保证一定能成功。一般收费网站,会有较多障碍。

有任何问题、建议,欢迎在评论区提出。我有空的话会及时修复、改进。

基本使用方法

打开待下载文章的目录页,点击本脚本的“开始”菜单项,会在页面右侧显示一个面板,下方有当前页面链接列表,直接点“下载全文”即可下载,文件会下载到浏览器当前的默认下载文件夹下,浏览器有下载管理器的可以在里面查看。

在下载全文前,你可以对章节列表进行排序、删除、重新获取、抽样查看某个章节的正文等。待感觉顺序和正文都正常后再下载全文。这样可以保证下载内容尽量正确。

面板上方是当前网站的配置信息,默认会把自动生成的链接列表和提取正文的css选择器显示在上面。小白一般不用管。

碰到本脚本不能正常生成准确的链接列表或提取正文的网站,如果你有一定的前端开发经验,你也可以自定义网站配置,以使网站能正常下载。详见网站配置信息说明。

面板操作简介:

  • 获取目录

会把当前页面中符合目录选择器的链接新增在列表下方。如果配置的目录选择器为空,会自动生成目录选择器。

  • 续页目录

根据目录页面的下一页链接,连续获取接下去的剩余目录列表。当获取结束还没有获取到完整目录时(往往是连续获取网站网络出现问题),可以再点击它以继续获取。

如果获取剩余目录失败,只能试试通过其他插件(如东方永页机等),看看是否能行。

  • 清空目录

全部删除已经提取的目录列表。

  • 下载全文

根据目录顺序,依次下载章节全文,生成文本文件并自动下载。如果有章节全文提取失败,则不会自动下载。

保存时会上传小说相关信息到云端,具体信息为网页标题、网址、章节数、正文长度、时间5个字段,没有任何个人信息。想着以后能不能做个通过本脚本下载的排行榜什么的。如果不希望上传相关信息,可以在配置中设置notUploadSaveinfo即可。

  • 删空正文

删除正文提取为空的目录,只保留有正文的目录,包括部分提取的。

会下载本章节网页并根据当前正文选择器提取正文。如果配置的正文选择器为空,会自动生成正文选择器。

根据提取结果会在后面显示状态,正常为OK,下载失败为Er,正文提取失败为No等。会根据正文页面的下一页链接继续下载,直到链接和目录中的链接相同。如果不为OK但有部分正文,会在结果后面显示“+”号。后面的数字代表续页数量。

如果正文不为空会显示一个正文阅读器供浏览检查。正文阅读器中可以设置显示样式,并可以翻页。可以当做一个简单的小说阅读器用。

删除本章节

  • 章节排序下拉框

可以根据章节提取顺序,章节号,链接号升降序排序。

章节号根据标题中最先出现的阿拉伯数字或中文数字提取,链接号提取的是最后出现的阿拉伯数字。

  • ︿﹀

隐藏或显示目录列表。

  • 网站配置信息输入框

显示当前网站的配置信息,目录和正文都会依据这些配置信息来提取。 输入框左边有下列按钮:

  • 保存

把输入框中的配置作为当前网站的配置信息存储起来,下次重新在该网站下使用本脚本时会自动使用已保存的配置信息。当配置信息为空时,会删除本网站的配置信息。

  • 缩放

把输入框放大或缩小到固定的大小。

  • 导入

把json格式的一个或多个网站配置信息文件导入并保存到脚本。

  • 导出

导出目前已保存的所有网站的配置信息。保存的是json格式,文件名AllSiteSetting.txt。方便自己换电脑时还原及用户间共享。

  • 清空

删除现有全部网站配置信息。 *自助获取目录列表

针对自动获取目录列表失败的情况,可以手动点击任意目录项,获取正确的目录列表。

网站配置信息说明:

配置信息内部以json格式存放。默认不会自动保存,需要时请手动保存。在显示框显示的是本脚本规定的格式,规则如下:

开始字符以$$打头的,则后面字符认为是key,接下去的行则为这个key所对应的值。空行自动删除。

允许的key值:

  • listSelector

表示链接列表选择器,多行则每一行表示一个选择器,提取时会依次合并。

当每页的目录选择器都不一样时,可以设置该值为 --,使获取剩余目录时都自动获取目录选择器。

  • textSelector

表示正文选择器,多行会依次提取并合并正文。

当每章节的正文选择器都不一样时,可以设置该值为 --,使获取每章节正文时都自动获取正文选择器。

  • jammerSelector

干扰码选择器,提取正文前会检索符合的元素,多行会依次删除

  • nextListSelector

目录下一页选择器

  • nextListDelay

目录下一页延迟时间,毫秒

  • frameText

针对动态网页,利用iframe加载获取正文。单独一行,不需要设置值。只是这种方式获取文本会比较慢。个别网站会跳到章节页面,不能用。

  • addedNextPageReg

自定义下一页链接的文本正则表达式。

  • notUploadSaveinfo

不要上传正文保存信息。单独一行,不需要设置值。

以下的key为自定义函数,统一的行为是如果函数没有返回值,则默认会返回并更新传入的各个参数。

  • customListFunc

自定义列表函数。会在列表提取前执行,参数为doc,selector。表示目录页的document和目录选择器。如果返回参数,则应该是一个对象数组表示目录列表,每个对象为{href:xxx;text:xxx}表示一个目录项的网址和目录名。

  • customItemFunc

自定义目录链接处理函数,会在处理每一个目录链接前执行。传入doc,item,表示目录页的document和待处理的某个目录链接元素。

  • customTextFunc

正文处理函数,会在每一个目录的正文处理前执行。传入doc,selector,表示正文页的document和正文选择器。如果返回值为单个文本,则直接把该文本当做正文。

  • customNextPageFunc

自定义获取正文下一页链接。传入doc,href,表示当前正文页的document和网址。函数应返回下一页网址。

配置信息举例

如果获取不到章节文本或者不全,首先试试配置$$frameText,只是下载会慢一些。

如果有部分章节获取不到文本或者不全,试试$$textSelector下加--。让每一个章节都自动获取正文,互不干扰。

  • 起点中文网

每章节的元素id、class等都不同,加上以下配置可以正常获取章节全文:

$$textSelector
--
  • 潇湘书院

章节内容动态生成,所以需要用frame获取。自动获取的文本选择器有额外内容,最好自己定义:

$$frameText
$$textSelector
#content
  • 书旗小说

章节内容动态生成,所以需要用frame获取:

$$frameText

*99藏书网

网站应切换到m.99csw.com手机版,抓取的内容比较干净。网页源码带混乱,需用frame方式获取。

$$textSelector
#content
$$frameText

鸣谢

天下文章一大抄,菜鸟编程也类似。我不是专业前端开发人员,许多js编程技巧来自网上。从hoothin的“怠惰小说下载器”我借鉴了正文提取方法。另外,为支持中文数字章节号提取,从网上抄了“红烧鱼i”的《js实现中文数字转阿拉伯数字》,为支持js高亮显示,使用了codemirror库,在此一并表示感谢。