如何批量下载在线漫画
曾经有一个心愿,希望收藏全套42卷鸟山明的漫画大作——《七龙珠》,它曾经陪伴我度过了少年时代的多少个日日夜夜,带给我欢愉、勇气和信念!
今天终于把《七龙珠》全部42卷漫画拖了下来,令我没想到的是,整部漫画竟然有1.3G之巨。多亏了现在网上流行的在线漫画网站,才让我得以了却这个心愿。当然,让我如此这般一口气下载了整部的漫画全非在线漫画网站的本意,所以为了略表感激,我也在该网站上点击了几个我比较感兴趣的广告。:)
废话就不多说了,下面就来谈谈如何批量下载在线漫画。首先要有一个下载利器,它不需要华丽的界面、不需要花哨的附加功能,但必须要具备几个核心功能要素:多任务并发、批量下载、Referer伪装。这里我推荐FlashGet,至于迅雷、电驴、BT之类流行的下载工具,其实是在核心的HTTP下载功能上并不满足我们的需求,所以无法胜任。(原因下面会提到)
有了武器之后,我们还需要针对目标制定策略。这里简单的分析一下我接触到的几类在线漫画的下载保护机制及其对策:
(1)Referer检测
简介:这是一般网站防止盗链的基本方式,初级的在线漫画网站一般采用这种方式进行保护,对CPU占用率会造成轻微的负担。
测试:将漫画图片的URL在新窗口中直接打开时无法看到图片,一般会出现“禁止盗链”之类的提示,或者直接提示“403 Forbidden”。
对策:使用具有Referer伪装功能的下载工具批量下载,如FlashGet(注:现在广为流行的迅雷并不支持这个功能)。在填写下载任务的高级属性时,将浏览该在线漫画的网址填写在“Referer”(或中文的“引用”)一栏中即可。注意:有的网站可能会辨认每一卷具体的Referer,有的则只辨认归属网站。
(2)图片URL隐藏
简介:通过屏蔽鼠标右键、IFrame、Script(甚至Encoded Script)等方式将漫画图片的真实URL加以隐藏,让下载者无从入手。专业在线漫画网站的必用手法。
测试:如果在你的能力范围内无法找出漫画图片的URL就可以归作此类。
对策:右键封锁部分可以通过Maxthon的Enable Right Click插件消除(但好像大部分都不行…);简单的未编码的Script可以尝试读出其URL生成算法;IFrame可以通过网页属性找出Frame的网址再层层拆离。当然,上面这些方法通常都需要一些网页、脚本编写基础,下面我再介绍一个通用的傻瓜方式:安装一个支持日志功能的HTTP代理软件,如CCProxy,开启日志功能,然后通过这个本地代理访问在线漫画网站,从日志中一般都可以轻松找出漫画图片的URL(用.jpg搜索一下)。
(3)动态图片URL
简介:在客户端请求浏览漫画时,动态生成短期有效的图片URL,使的批量下载实效。对服务器CPU占用率影响较大。
测试:如果两次以上找出同一漫画图片的URL不相同或包含杂乱后缀的,通常属于这种保护方式。
对策:目前暂无。(还望高手指点)
(4)Cookie保护
简介:在客户端请求浏览漫画时,临时生成一个短期有效的Cookie,响应图片下载请求时核对该临时Cookie使的批量下载实效。对服务器CPU占用率有轻微影响。
测试:用Referer伪装方式仍然无法下载的图片可能属于这种保护方式。
对策:在我的印象中,NetAnts号称支持Cookie(仅限静态已记录的Cookie),FlashGet、迅雷等新均无类似功能。但对付此类保护方式的实际效果非常有限,可能在短期内(Cookie有效期)对部分文件(Cookie保护的范围,如一卷)有效。此方法暂时未经实测。(如今的下载软件在核心功能上是实是一代不如一代了……)
(5)图片下载的Session并发保护
简介:禁止并发Session下载漫画图片,对下载Session的时间间隔进行强制检查。虽然机制并不复杂,但实为在线漫画下载的致命克星!
测试:由于此方式通常配合上述其它保护手段,所以常常很难直接辨认。可能表现为下载速度缓慢并随机性失败。
对策:目前暂无。(Retry and Retry?)
一般来说,专业的在线漫画网站都会使用不止一种保护方式,因而对下载者来说破解的难度较大。建议对于同一本漫画,多搜索几个提供在线浏览的网站,通常都能找到一个肉鸡的。;)