小众漫画下载器

news/2024/12/29 5:04:09/

由于最近心血来潮,想在kindle上看看漫画版的万年小学生《名侦探柯南》,所以就在网上找了一大圈,但没有找到合适的打包下载的资源,倒是在线观看的有很多(当然也包括手机上的漫画应用)。所以最后决定自己做一个下载器,下载漫画的同时也可以有一丁点的成就感,一举两得。


找到了一个在线看漫画的网站(具体网址就不在这里说了),简单看了一下html的源代码,发现漫画图片的链接实际上是放在js文件里边的。然后又顺藤摸瓜找到了js文件,格式大致如下:

var comicName = "名侦探柯南";var nextVolume="/HTML/MZTKN/801/";var preVolume="/HTML/MZTKN/799/";var picCount = 16;var picAy = new Array();var hosts = ["http://coldpic.sfacg.com","http://coldpic.sfacg.com", "http://58.241.186.156:88"];picAy[0] = "/Pic/OnlineComic2/MZTKN/800/001_9406.png";picAy[1] = "/Pic/OnlineComic2/MZTKN/800/002_4323.png";picAy[2] = "/Pic/OnlineComic2/MZTKN/800/003_6688.png";picAy[3] = "/Pic/OnlineComic2/MZTKN/800/004_1607.png";picAy[4] = "/Pic/OnlineComic2/MZTKN/800/005_9203.png";picAy[5] = "/Pic/OnlineComic2/MZTKN/800/006_8753.png";picAy[6] = "/Pic/OnlineComic2/MZTKN/800/007_3110.png";picAy[7] = "/Pic/OnlineComic2/MZTKN/800/008_0507.png";picAy[8] = "/Pic/OnlineComic2/MZTKN/800/009_7960.png";picAy[9] = "/Pic/OnlineComic2/MZTKN/800/010_1023.png";picAy[10] = "/Pic/OnlineComic2/MZTKN/800/011_3012.png";picAy[11] = "/Pic/OnlineComic2/MZTKN/800/012_2273.png";picAy[12] = "/Pic/OnlineComic2/MZTKN/800/013_6487.png";picAy[13] = "/Pic/OnlineComic2/MZTKN/800/014_7072.png";picAy[14] = "/Pic/OnlineComic2/MZTKN/800/015_8199.png";picAy[15] = "/Pic/OnlineComic2/MZTKN/800/016_9795.png";
看到这里,立刻觉得没有问题了。原理很简单:

1. 在线读取入口js文件

2. 动态解析之:获取"current volume"的图片路径(一个array),获取"next volume"的路径

3. 下载"current volume"的图片

4. 将"next volume"对应的js路径构建出来(如何构建?好好观察一下网站就能发现规律),转至1

5. 当"next volume"的值为结束标记(看一下最后一个volume的js文件就可以发现)时,停止循环。至此,下载结束


原理了解之后,接下来就是code了。用什么语言来实现呢?本来想别出心裁(对于我自己来说)用perl脚本(正好学习一下)来实现,但是最终发现自己太懒了,还是老老实实用java搞定了。

主要用到了几个java解析javascript的几个api,具体可以见项目源代码(见最后)。


P.S. 

1. 如果本文不小心被漫画网站的小编看到了,觉得我侵害到了版权,可以私信与我联系

2. 项目源代码:https://github.com/fimh/JSParse




http://www.ppmy.cn/news/135509.html

相关文章

用python写了个简单的178漫画下载器

简单的178漫画下载器 自己写的漫画下载器 用来下载178完结漫画 用来保存 用法:把要下载的漫画地址复制到软件点击下载就是了 下完文件在软件目录中 from lxml import etree import requests import re import execjs import sys import json import os from PIL…

Python漫画下载器

“并不是所有数据都应该被获取。” —— 弗罗指令,53.12 很多漫画找不到下载资源了(可能被亚空间吞没了吧),无奈只能从漫画网站上扒了。但一页一页右键保存太浪费资源与时间了,所以写了个Py爬虫扒图片吧~&…

1805:碎纸机 (java实现 DFS 回溯)

题目链接 dfs,转化为处理子问题如123456,1和子问题“23456”,12和子问题“3456”等 注意遇到重复的切割方式不能简单的修改ans-2,因为当再次遇到相同方式,会覆盖掉-2. import java.util.*;public class Main {pub…

【专题5: 硬件设计】 之 【38.案例三:碎纸机,正转信号和反转信号只能二选一】

希望本是无所谓有,无所谓无的,这正如脚下的路,其实地上本没有路,走的人多了,也便成了路原创不易,文章会持续更新文章会同步到作者个人公众号上,感谢扫码关注 所有文章总目录:【嵌入式…

【专题5: 硬件设计】 之 【29.案例三:碎纸机,继电器和电磁兼容概述】

希望本是无所谓有,无所谓无的,这正如脚下的路,其实地上本没有路,走的人多了,也便成了路原创不易,文章会持续更新文章会同步到作者个人公众号上,感谢扫码关注 所有文章总目录:【嵌入式…

ISCC 2019 杂项 碎纸机(“想要我的宝藏吗?如果想要的话,那就到碎纸机中找吧,我全部都放在那里。”)

先下载吧 下载之后 打开 是一个 jpg文件 打开 真的是一个碎纸机 将文件名称改为 .zip 解压后可以得到 十张图片!!! 还有一个文本文件如下 碎纸机中居然是一堆黑色和白色的碎片,但是这些碎片之中到底会有什么样的宝藏呢&…

openjudge 1805碎纸机 解析报告

openjudge 1805:碎纸机 解析报告总时间限制: 1000ms 内存限制: 65536kB描述你现在负责设计一种新式的碎纸机。一般的碎纸机会把纸切成小片,变得难以阅读。而你设计的新式的碎纸机有以下的特点: 1.每次切割之前,先要给定碎纸机一个目标数&…

XCTF---MISC---碎纸机11

XCTF—MISC—碎纸机11 flag:flag{You Can Repair A Picture From Splices Baesd On Entropy} 解题思路: 1、观察题目,下载附件。 2、下载后是一个文件夹,文件夹中包含了50张图片,图片宽度非常窄,根据题目…