功能
- 使用 通过快捷键(默认)"Alt + V" 唤起脚本,点击按钮可切换显示/隐藏界面,界面含(主页,加载,下载,设置)四个标签栏,点击切换显示各自内容
- 主页
- 显示脚本目前适用的漫画网站和导入规则网站,点击可 跳转 至网站
- 加载页
- 在适用的漫画网站某一漫画目录页 下,点击加载获取当前网页漫画章节
- 可全选\全取消\多选\区间选择(按shift)章节,选择后点击下载按钮,开始下载
- 点击分割线 重载列表 文字,重新加载章节
- 章节排序显示
- 章节名自定义编辑功能
- 编辑章节可批量删除所选章节首/末尾一个字符
- 自动增加章节序号(可选)
- 在阅读章节页面下载当前章节(test)
- 下载页
- 含(下载中、待下载、已下载)三个列表项,显示下载的章节名称。
- "下载中"列表项显示章节下载进度
- 压缩下载, 保存压缩章节漫画文件: 10Comic(文件夹)\漫画名(文件夹)\章节链接名称.zip
直接下载,保存图片文件: 10Comic(文件夹)\漫画名(文件夹)\章节链接名称(文件夹)\图片序号.jpg
拼接下载,保存图片文件: 10Comic(文件夹)\漫画名(文件夹)\章节链接名称(文件夹)\拼接后图片序号.jpg
如要保存在 文件夹 中,需要设置油猴 浏览器 API
- 下载的 '序号.txt' 文件为记录下载错误或请求超时的图片地址
- 显示下载记录,可删除指定下载记录,点击漫画名 跳转 该漫画目录页
- 设置页
- app加载选项(初始是否加载界面,设置加载界面快捷键-(默认Alt + V),设置窗口加载比例缩放)
- 设置最多可同时下载章节数量
- 设置每章最大下载图片数
- 选择下载方式(压缩下载/直接下载/拼接下载)
- 可更改单张拼接图片最大高度
- 图片数字命名指定最少位数(图片序号小于指定位数则向前补充0命名)
- 设置章节图片下载范围 (默认 1至-1, 代表从第一张图片下载至最后一张)
- 对个别漫画网站图片上下拼接(可选)
- 可导入、删除其他网站漫画规则(导入规则见-自定义添加规则)
- 可初始化设置中所有数据
- 添加脚本反馈/评分跳转链接
- 搜索 (默认隐藏)
2023.2.10
脚本开源-GitHub <— 对你有帮助的话给我点个 star 吧
2023.2.7
从 1.4.0 版本起脚本更改为任意网页运行,脚本默认不加载界面,可通过快捷键 Alt + V 加载界面,或点击浏览器油猴扩展图标点击本脚本中的-加载UI
当然也可以在脚本设置中恢复默认加载界面 (不建议。1、部分网站为SPA页面,页面更改不会重新触发脚本。2、脚本使用 Vant 组件库, 可能影响原网站样式,如会改变网站的字体大小等)
操作指北
- 油猴-浏览器API (设置
- 油猴 - 设置 - 通用 - 配置模式 - 选高级
- 设置 - 下载 BETA - 下载模式 - 选浏览器API
- 唤不起脚本界面?
- 原因 脚本引入外部组件,可能会有因不同地区的网络影响导致没有加载的这些外部资源,使脚本无法正常运行。
具体点击油猴插件,右键“10图漫”脚本,进入脚本编辑页后,点击外部,查看是否有 4 个外部引用链接缓存(文件大小不为0
- 解决方法 隔一段时间再尝试,网络影响可能就没有了(;´д`)ゞ。也可以尝试使用加速器,刷新网页,再唤起脚本界面。(参考1、 参考2 )
漫画网站列表
* 声明/注意
- 该脚本及其产生的内容数据仅限用于个人学习,不要将其用于任何非法使用,后果与作者无关
- 请合理使用线程
- 网站可能会更换域名而导致脚本网站方法失效
- 如脚本界面中网站显示未匹配,则代表该网站未加入匹配规则或原网站域名已更换而失效
- 如存在付费章节需登录并提前购买,部分网站不能正常阅读,下载也可能会失败
- '序号.txt' 文件记录下载错误和请求超时图片
- 刷新页面 任务会终止
- 如更新脚本后脚本运行出错(新版本存储数据格式可能有不同),请尝试脚本中初始化设置数据
- 如压缩下载有较多油猴弹窗提示跨域,建议直接下载
自定义添加规则
[
{
domain,String || Array, 域名,
homepage,String, 网站主页,
webName,String, 网站名,
comicNameCss,String, 漫画名的CSS选择器,
chapterCss,String, 含有所有章节链接的dom的CSS选择器,
readtype, Number, 值:1 -卷轴阅读或SPA网页, 值:0 -翻页阅读 (指不能一次性获取到某章节所有图片地址),
useFrame, Boolean, 当 该 key存在 且 value为 true, 使用 隐藏的 iframe 窗口获取章节内容
webDesc, String, 一些网站备注或提醒信息
getImgs,String, 字符内容为获取章节图片的函数,
// ———————— 1 —————————— 卷轴阅读或SPA网页
* 1、(readtype == 1)
* @param {String} (context)
* context 某一章节链接的请求正文
* @return {Array} imgArray
* 要求返回imgArray 数组 包含该章节所有图片地址
* 例如 return ['http://xx.xx.xx/1.jpg','http://xx.xx.xx/2.jpg']
// ———————— 2 —————————— 翻页阅读
* 2、(readtype == 0)
* @param {String, Object} (context, processData)
* context 章节某一页链接的请求正文
* processData 进程反馈数据及自定义保存的数据
* @return {Object}
* 要求返回 { *imgUrlArr, *nextPageUrl, *imgCount, otherData }
* imgUrlArr -当前页的所有图片地址, 如果本页 imgUrlArr.length == 0 结束下载, 否则请求下一页地址
* nextPageUrl -下一页地址,如果 nextPageUrl == '' ,获取完 imgUrlArr 后结束下载
* imgCount -章节图片总数量
* otherData -(可选值)结束当前页请求后自定义保存需要的数据,请求下一页数据时 processData.otherData可获取到,首页请求时 otherData 未定义
* 参考
* return {
imgUrlArr: ['http://xx.xx.xx/3.jpg','http://xx.xx.xx/4.jpg']
nextPageUrl: 'http://xx.xx.xx/xxx/3.html'
imgCount: 12,
otherData: {
currentPage: 2,
sign: 'FSFRGGFDBFRHHEYSDGHNTRRSSGS',
……
}
}
// ———————— 3 —————————— 使用 iframe 窗口获取章节内容
* 3、(readtype == 1 且 useFrame == true)
* @param {String, Object} (context, processData)
* context 章节某一页链接的请求正文
* processData 进程反馈数据及自定义保存的数据
// 参考下面规则 JOSN 2
}
]
1、 readtype == 1
[
{
domain: 'xx.xx.com',
homepage: 'https://xx.xx.com/',
webName: 'xxx',
comicNameCss: '.oddtitle_m .title_text h1',
chapterCss: '.online_border',
readtype: 1,
getImgs: `function(context) {
// 函数写在字符里面, 注意正则内容转义
const imgStr = context.match(/xx正则xx/g)
const imgs = eval(imgStr)
return imgs
}`
},{……},{……},{……}
]
2、 useFrame == true 且 readtype == 1
使用 iframe 打开章节网页后获取内容 (iframe是隐藏的)
[
{
domain: 'xx.xx.com',
homepage: 'https://xx.xx.com/',
webName: 'xxx',
comicNameCss: '.oddtitle_m .title_text h1',
chapterCss: '.online_border',
useFrame: true,
readtype: 1,
getImgs: `async function(context, processData) {
// processData.frameId 是脚本打开某一章节网页 iframe 的 id
const iframeWindow = document.getElementById(processData.frameId).contentWindow
const iframeDom = document.getElementById(processData.frameId).contentDocument
// iframeWindow 的变量和函数方法 (或许会用到)
// const xx = iframeWindow.xx
// const xxfun = iframeWindow.xxfun()
const image = [...iframeDom.querySelectorAll('.xx img')].map(img => img.dataset.src ?? img.src)
// 最后关闭打开的 iframe 并返回图片数组
document.getElementById(processData.frameId).remove()
return image
}`
}
]
v2.0 更新记录
- 2024/12/25 v2.0.7
- 修改下载失效的GoDa、来漫画、百漫谷网站
- 新增风车漫画匹配、修改拷贝漫画章节chapterCss
- 修改md文件
- 2024/10/24 v2.0.6
- 2024/10/01 v2.0.5
- 2024/10/01 v2.0.4
- 2024/9/30 v2.0.3
- 修改GoDa网站新域名匹配方法
- 修复下载错误时可能出现进度条不变bug
- 2024/8/10 v2.0.2
- 新增匹配yymanhua、xmanhua
- 修改动漫狂网站获取图片方法
- 2024/8/3 v2.0.1
- 2024/7/12 v2.0.0
- frame滚动获取图片整理(三年了 φ(゜▽゜*)♪
感谢