本帖最后由 steven026 于 2022-7-23 21:54 编辑
【碎碎念】
随便用来练手的脚本,因为不会python所以用JS写了爬虫,(得益于油猴脚本猫的GM_xmlhttpRequest没有跨域)
最近书荒,想到了还有个宝库pixiv,于是便写了这个脚本
力量并不可怕,可怕的是他的主人
(说实话pixiv里面没几本小说能看的,各种克苏鲁级别的xp标签我都没欲望点开看)
【简介】
用来练手的爬虫脚本,放弃了引入第三方脚本,选择使用油猴脚本猫内置函数,因此依赖油猴脚本猫。
不需要设置cookies,只需要用浏览器登陆Pixiv保证对目标小说有访问权限即可。
下载内容存储在油猴脚本猫脚本中,可通过控制台命令将指定小说导出到本地。
由于GM_xmlhttpRequest没有跨域限制,实际上可以将
// @match https://www.pixiv.net/novel/series/*
替换为
// @include *
从而在任意页面使用本脚本
【爬虫命令】
startMain(seriesID,"Charpters",isForce)
启动爬虫
--{number} seriesID: 必填,系列小说ID,获取位置为:https://www.pixiv.net/novel/series/系列小说ID (数字,不含?)
--{string} Charpters: 可选,指定章节,默认为全部,具体指定规则见后文
--{boolean} isForce: 可选,对于已存在章节是否强制下载,默认为否
downloadList()
获取已下载内容列表
无参数,返回2个内容,分别为全部章节和全部小说,全部小说中文本可用于download()参数中的NovelName
download(NovelName,Charpters)
导出已下载内容
--{string} NovelName: 必填,系列小说名,可通过downloadList()获取
--{string} Charpters: 可选,指定章节,默认为全部,具体指定规则见后文
Charpters 规则:
规则1:单一数字/^\d+$/ 添加单一数字章节到下载队列
规则2:数字范围/^\d+-\d+$/ 添加数字范围章节到下载队列
规则3:^单一数字/^^\d+$/ 从下载队列中删除单一数字章节
多个规则用,分隔
例:"1,3-10,^5,15" 代表下载第1、3、4、6、7、8、9、10、15章
例:"^5,3-10,1,15" 代表下载第1、3、4、5、6、7、8、9、10、15章