1、申 请 I D:colorless
2、个人邮箱:vimunci@gmail.com
3、原创技术文章:小弟写了一个解析各种漫画分享网站结构的的爬虫,希望和大家交流一下技术还有写软件的心得。
软件的URL:
https://github.com/kanasimi/work_crawler
举例来说小弟曾经分析过 ComicWalker 对图片的处理:
https://github.com/kanasimi/work_crawler/blob/master/comic.ja-JP/ComicWalker.js
ComicWalker 会将图片存在像是这样子路径的档案:
https://drm.nicoseiga.jp/image/78c60478495c13061ecccd6a493c6317f9485fed_17746/8371673p
每个档案代表一张图片
解码机制全部都放在
https://cdn.comic-walker.com/viewer/cw-viewer.min.js?20180424
从图片档案 URL 的 drm_hash 可以生成 decode image 用的关键 key:
[JavaScript] 纯文本查看 复制代码 this.generateKey(n)
// this.generateKey("78c60478495c13061ecccd6a493c6317f9485fed_17746")
key: "generateKey",
value: function(t) {
var e = t.slice(0, 16).match(/[\da-f]{2}/gi);
if (null != e)
return new Uint8Array(e.map(function(t) {
return parseInt(t, 16)
}));
throw new Error("failed generate key.")
}
之后会用 this.decodeFromBlob(e, r); 来解码图片资料的每个位元:
xor({Blob}图片资料 → {ArrayBuffer}, {Uint8Array(8)} 关键 key)
[JavaScript] 纯文本查看 复制代码 key: "xor",
value: function(t, e) {
for (var n = new Uint8Array(t), r = n.length, i = e.length, o = new Uint8Array(r), a = 0; a < r; a += 1)
o[a] = n[a] ^ e[a % i];
return o
}
经过xor转换即可还原先的图片。
|