xuzhengyi1995 / Manga_downloader

A Manga download framework using selenium.
620 stars 57 forks source link

一个问题不大的漏页现象与一个新思路的自动翻页脚本 #92

Open coofo opened 2 years ago

coofo commented 2 years ago

问题不大的漏页: 发现一本漫画的四次章节过度页面是4张完全一样的图(MD5也一样),这个情况下只会下载第一张,后面碰到会出现漏下。

自动翻页脚本: 因为一开始上面的漏页以为是延迟时间不够导致的,然后自己重新写了个通过判断canvas内容是否变化来翻页的自动翻页脚本,这样可以尽量缩短等待时间,希望可以提供些参考。 目前已知的问题和上面漏页原因可能类似,如果出现连续3张及以上数据完全一样的图时(MD5都一样),会停止不继续翻页 window.checkStatus = { i: 0, canvasLog: ["", ""], wait: 0, needNext: false }; setInterval(() => { if (checkStatus.wait > Date.now()) { return; } if (checkStatus.needNext) { checkStatus.needNext = false; NFBR.a6G.Initializer.Z4p.menu.options.a6l.moveToPage(checkStatus.i); console.log(checkStatus.i); checkStatus.i++; } else { let canvas0 = document.getElementById("viewport0").querySelector("canvas").toDataURL("image/png"); let canvas1 = document.getElementById("viewport1").querySelector("canvas").toDataURL("image/png"); if (checkStatus.i <= 1 || checkStatus.canvasLog[0] !== canvas0 || checkStatus.canvasLog[1] !== canvas1) { checkStatus.canvasLog[0] = canvas0; checkStatus.canvasLog[1] = canvas1; checkStatus.wait = Date.now() + 200; checkStatus.needNext = true; console.log("needNext "+(checkStatus.i)); } } }, 100);

xuzhengyi1995 commented 2 years ago

图片的下载为了防止重复下载所以同样进行了hash比对,所以不会下载重复图片。有想过在Native层面做加载完自动翻页和方便使用的UI,但是一直没有时间尝试,感谢提供脚本!

iPixelOldC commented 2 years ago

话说老哥,您下载漫画的时候,那个漫画卷尾的封面,中缝和封底合在一起的大图,能不能被下载下来啊?或是中间一些尺寸和正常漫画图片不一样的图能不能被下下来。看了你们说的,咱想确定是不是只是我这边的问题,谢谢。因为这种尺寸不一样的图,咱就是下不了,只能用老方案下下来(._.)

coofo commented 2 years ago

话说老哥,您下载漫画的时候,那个漫画卷尾的封面,中缝和封底合在一起的大图,能不能被下载下来啊?或是中间一些尺寸和正常漫画图片不一样的图能不能被下下来。看了你们说的,咱想确定是不是只是我这边的问题,谢谢。因为这种尺寸不一样的图,咱就是下不了,只能用老方案下下来(._.)

我没碰到过这种漫画,所以无法回答这个问题