最近光折腾小问题了。有关 Windows 10 ver 1607 的集中 bug 和 fix 方案可在这里找到:关于智障的 build 14393 一些 feature 的可能修复方案。这篇文章要描述的是另外一个困扰我两个月的问题。
毕竟四月番我主推了两大女性角色:一个芙蕾雅一个爱蜜丽娅。收集同人图也就成为工作重点。这几年基本没有非常好的此类工具供使用,要不自己写爬虫,或者去网站一张一张下。多年以前有这么一个软件,也是今天的主角——Moe Loader,这软件可以胜任几乎所有的收图工作,而且支持的图站也多。我日常还是扫 Pixiv 的,但是某一天突然去网站上下图,发现了一件非常尴尬的事情:Moe Loader 下载的并不是原图。这个就蛋疼了,对于强迫症患者来说这不能忍,所以我就开始搜索解决之道,但是似乎没人有办法……难道除了靠作者之外就没有别的办法了吗?有,自己写一个工具。不过对我来说这是不可能的辣,于是再次搜索,才发现 Moe Loader 已经开源了,所以干脆读读源代码,看能不能修正一下吧。
说明一下 fix 方案的配置环境:
OS:Windows 10 RS1 build 14393.51
编译: Visual Studio 2015 Community Update 3
Moe loader 版本:7.0.3.3/4
导入项目什么的都不提,开始我以为不好找对应的代码,但没想到相应的解析模块是独立的,这样就好办了。站点配置在SitePack/SitePixiv.cs
里面,重要的代码块是从 252 行开始:
//URLS //http://i2.pixiv.net/c/600x600/img-master/img/2014/10/08/06/13/30/46422743_p0_master1200.jpg //http://i2.pixiv.net/img-original/img/2014/10/08/06/13/30/46422743_p0.png i.SampleUrl = doc.DocumentNode.SelectSingleNode("//div[@class='works_display']").SelectSingleNode(".//img").Attributes["src"].Value; i.OriginalUrl = i.SampleUrl.Replace("600x600", "1200x1200"); i.JpegUrl = i.OriginalUrl;
255 行是获取缩略图,256 行是获取原图。我们再去看看 p 站的网页结构,以 Pixiv ID 58393802 为例:
缩略图的部分:
<div class="works_display"> <div class="_layout-thumbnail ui-modal-trigger"> <img src="http://i3.pixiv.net/c/600x600/img-master/img/2016/08/12/00/01/17/58393802_p0_master1200.jpg" alt="爱蜜莉雅"> </div> </div>
原图:
<div class="_illust_modal ui-modal-close-box" style="z-index: 10001; display: block;"> <div class="wrapper"> <span class="close ui-modal-close"> <i class="_icon-12 size-2x _icon-close"></i> </span> <img alt="爱蜜莉雅" data-src="http://i3.pixiv.net/img-original/img/2016/08/12/00/01/17/58393802_p0.jpg" class="original-image" src="http://i3.pixiv.net/img-original/img/2016/08/12/00/01/17/58393802_p0.jpg" height="2715" width="1920"> </div> </div>
原先的代码是抓到缩略图地址之后处理传给OriginalUrl
,但是这样得到的地址依旧不是原图的。所以干脆直接处理原图地址算了:
i.OriginalUrl = doc.DocumentNode.SelectSingleNode("//div[@class='_illust_modal _hidden ui-modal-close-box']").SelectSingleNode(".//img").Attributes["data-src"].Value;
重新生成 dll,然后替换,测试:
这个大小就对了,因为懒我就不再贴文件属性验证结果,各位可以自行回去测试。
文件下载:SitePack.dll Sha-1:FDF1CFA3B54CC4FC105FE75911BE9AFEBBACD3BA
备份并替换文件夹里的同名文件即可。然后你就可以省去到网站上找原图的工夫了。
需要注意的是,目前只修复了单张图片的原图下载,对一次投稿多张(manga 类别)的作品还无法正确解析。之后有机会我再继续修改。另外请注意不要滥用。
这是在 GitHub 上的项目地址:https://github.com/ershiwo/moe-loader/,欢迎 PR。
Update:目前已经解决漫画模式下的解析问题了,dll 这就更新。我之前绕远了。
请问放了SitePack.dll后显示信息加载失败怎么解?
http://image.prntscr.com/image/9380e250038449eca1765d62c411a4b3.jpeg
信息加载失败就是漫画类别图片没有正确解析。gayhub 上的代码有修正,可以获取漫画类的第一张图,如果晚上我还记得的话再重新生成一份 dll。
喂喂喂 吓人了啊 gayhub什么鬼 你吓坏我了
gayhub 就是 gayhub,好孩子不要点错就好了。
我想问一下, 最近几天遇到这情况
不知道你有没有解决的方法,不然好工具要埋没了 ... Orz
http://imgur.com/a/fBzD7
你是从 GitHub 拉下来的源码包自己编译的吗?最近考试比较多,周末我再看看。
我是用原始版本(7.0.3.3),没有改过。
好的 辛苦了 QWQ