关于那个批量下载漫画的工具,最近还在继续完善,这些天有些进展,又有些失望。
最大的打击就是在网上找到了一个已经写的很好的同类工具了,叫MangaDowner(http://www.tortinita.org/),已经更新到5.2了,看来作者还是很努力的。
早知道有这个工具的话,我才不去自己写呢,试用了一下发现很好用。他的思路大概和我的差不多,都是先取得章节URL,然后获得/计算出图片URL列表。而且那位叫tortinita的仁兄多写了一个导出功能,这样就可以用成熟的下载工具来下载图片了。在此之前我一直还在为断线重传和多线程下载的不稳定而烦恼,想不到windows下面也有这么好的办法——虽然没有shell中的wget可以调用,但是flashget和迅雷都是可以导入下载列表的。不过这样也有一点不好,漫画每一话的目录需要自己建立(引用也需要自己填写),稍微麻烦了一点(这也暴露了windows下面工具结合不够好的弱点),我打算写一个调用wget下载的功能,这样,处理起来安逸些。
于是,偷懒的解决了大问题。^_^
这个MangaDowner似乎不提供源码,所以用的人也没办法自己添加可用网站。

逛了一下作者的blog,然后发现,对于www.zxmh.net这个网站的漫画,MangaDowner只能获取列表,而不能把图片地址正确的得到。而这个网站正是我最先想要处理的,由于当时没搞明白他是怎么做的,就拿了个别的HTML处理图片的网站来开刀。

断断续续看了好些时候,吃过晚饭后终于把问题初步解决了。下面是我对www.zxmh.net的分析过程。
首先打开html源码一看……哇,好干净,就几个table,外加些许js链接。
那些链接指向的js,都无法直接访问,没关系,ff中有缓存呐,访问过页面后,再打开一个标签填上地址,这样就能看到js的内容了。但是有好多个js,而javascripts是我第二讨厌的东西(第一是他叔叔java),看起来真是痛苦。更可气的是这个站点把好好的js切的四分五裂,中间还有个硕大无比的unicodetoansi表。
稍微动点鼠标获得了一张图片的地址,可是无法访问,用flashget试了一下居然不能下载,写了段python添加referer也没用(本来flashge就有这功能的),该死,难道用了什么YD的手段。我也算是做过一些web程序了,看到返回的值不是404,而是IIS的错误警告,很明显有防盗链的作用,这种站点不会用太高级的东西吧,于是又试了N个不同的referer,无用,甚至连那些js都无法获取。
无奈中看到url中有个带?p=xx的尾巴,该不会用了点server端脚本吧,检查了一下站点cookies,好家伙,一大把cookies。找了半天没发现这些东西中有什么玄机。ie的cookies也看了,没啥区别。
中途还陪爸妈玩了几小时牌,用一种很长条的牌玩的,我们这儿叫“乱错”。
然后把ff缓存中得到的js代码提了出来,凑了个html页面,倒是真的能从那些datas[n]="xxxx"中找出hostname和path来。可是就是无法访问,狗日的怎么搞的啊,再看了遍js代码,的确没什么高级玩意儿,就一个很弱的解码,然后操作了一下dom,最有技术含量的地方就是预处理了下一页的图片。
唉,只有抓包了,下了一个ethereal,抓了一下,包虽然不是很多,可是我这个版本的ethereal有个bug,不能导出txt文件(由此建议各位不要因为sourceforge速度不快就在什么xx软件园下东西),可把我给找坏了。在一大群qihoo,baidu和擦边球的漫画网站广告中找到了那几个js和图片的包,一看header,气得要吐血。龟儿子引用页面就是每一话的url,而我由于粗心把带?p=xx的填了进去而不能下(后来又随便试了几个更差得远的)。
好啦好啦,这下没问题了。(白费两小时啊)
然后把那段解码的js几乎是照着搬过来用python涂了一下,测试通过。为了偷懒还把unicode编码转换那部分省略了,反正我看这网站也没什么汉字URL。
如果明天后天没有同学会的话,就把这个网站的下载写好。

贴一下我的编码代码:

# -*- coding: cp936 -*-
datas = ['']*200
datas[1] = 'L94c3kvMDcDAx.';
# 省略N多
datas[192] = '..YzgwNi9..DcvMTkxmpw==';
# 图片地址(实际上为图片服务器hostname)
pic_path = 'aHR.xOC4yND..0Oj.';
# 处理过程
message = '在线漫画www.zxmh.net';
keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
def decode64(input):
    output = ''
    chr1, chr2, chr3 = '','',''
    enc1, enc2, enc3, enc4 = '','','',''
    i = 0
    while i < len(input):
        enc1 = keyStr.index(input[i])
        i += 1
        enc2 = keyStr.index(input[i])
        i += 1
        enc3 = keyStr.index(input[i])
        i += 1
        enc4 = keyStr.index(input[i])
        i += 1
        chr1 = (enc1 << 2) | (enc2 >> 4)
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2)
        chr3 = ((enc3 & 3) << 6) | enc4
        output += chr(chr1)
        if enc3 != 64:
            output += chr(chr2)
        if enc4 != 64:
            output += chr(chr3)
        chr1, chr2, chr3 = '','',''
        enc1, enc2, enc3, enc4 = '','','',''
    return output
hostname = decode64(pic_path)
for i in range(1,len(datas)):
    print hostname + decode64(datas[i])

转载于:https://www.cnblogs.com/melorain/archive/2008/02/10/1066475.html

zxmh.net 的漫画下载相关推荐

  1. Python3 网络爬虫:漫画下载,动态加载、反爬虫这都不叫事

    一.前言 作者:Jack Cui 经过上两篇文章的学习,Python爬虫三步走:发起请求.解析数据.保存数据,已经掌握,算入门爬虫了吗? 不,还远远不够!只掌握这些,还只能算门外汉级别. 今天,就来带 ...

  2. 大剑漫画下载[CLAYMORE]

    大剑漫画下载[CLAYMORE] 下载地址:http://dl.dbank.com/c0szkh17wz#       第1卷:银眼的斩杀者 SCENE001:银眼的斩杀者 SCENE002:天空之爪 ...

  3. 130行代码实现海贼王漫画下载

    创客学院小编给大家带来一点福利,但不是妹子图!不是妹子图!不是妹子图! 敲了130多行代码,利用协程实现漫画下载,亲测没问题,目前海贼王更新到930话,全部下载下来1小时左右,供大家参考,一起共勉. ...

  4. 迅雷漫画下载 v1.0(绿色版) 附源码

    发现迅雷网站漫画很全,写了一个用于下载迅雷网站上漫画的工具. http://anime.xunlei.com/Book/sort 这个网址的全部1100多部漫画全部可以打包下载到本地. 只求完成功能, ...

  5. 迅雷漫画下载工具II 故障日志09.04.12

    博客上很多的同学都来反映说是程序一打开就自动停止工作,经过分析发现程序出错很有可能发生在自动更新的过程中. 于是趁着返回学校前的十几分钟,决定抓虫试试. 根据网友们的反映,前几天尚未出现故障,说明软件 ...

  6. 有你的小镇漫画下载[濑尾公治]

    有你的小镇漫画下载[濑尾公治] 下载地址:[001-099]http://dl.dbank.com/c0eef2ugss 下载地址:[100-169]http://dl.dbank.com/c0y66 ...

  7. 51fe 漫画下载助手 release091008

    51漫画下载助手,功能类似于MangaDowner,专用于下载 "超酷漫画连载"版块的漫画,支持自动登陆,多线程下载,纯绿色. 做这个东西纯粹是国庆这两天闲的O疼.至于有用没用,这 ...

  8. Python3网络爬虫:漫画下载,动态加载、反爬虫这都不叫事!

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 十年磨一剑,霜寒未曾试.今日把君问 ...

  9. 从零开始学爬虫系列3:漫画下载,动态加载、反爬虫这都不叫事!

    1 前言 前文回顾: 从零开始学爬虫系列1:初识网络爬虫之夜探老王家 从零开始学爬虫系列2:下载小说的正确姿势 经过上两篇文章的学习,爬虫三步走:发起请求.解析数据.保存数据,已经掌握,算入门爬虫了吗 ...

最新文章

  1. 深度学习在机器人视觉中的局限与优势(综述)
  2. 树莓派做网站服务器同时做nas,【项目分享】树莓派4搭建NAS,让硬盘轻松联网...
  3. 关于html和CSS的几个基本知识点
  4. Java黑皮书课后题第7章:**7.34(对字符串中的字符排序)使用以下方法头编写一个方法,返回一个排序好的字符串。编写一个测试程序,提示用户输入一个字符串,显示排序好的字符串
  5. Python查找所有类似于123-45-67+89 = 100的组合
  6. [leetcode] Max Points on a Line 判断最多有多少个点在同一条直线上
  7. MFC 教程【3_CObject类】
  8. H5混合开发二维码扫描以及调用本地摄像头
  9. 夺命雷公狗---linux NO:26 linux下的用户和用户组的管理
  10. Atitit。木马病毒原理机密与概论以及防御
  11. B站上的github视频教程笔记(包含两个B站视频,我觉得看这两个B站视频,github从原理到操作都可以会了)
  12. c语言输出图形之小飞机
  13. Android O WMS(3) -- addwindow
  14. 应用物理学属于计算机,应用物理学专业属于什么学科
  15. pthread_join()详解及实验
  16. android地区/时区/语言
  17. matlab教程 导入数据,MATLAB数据导入
  18. flutter配置环境变量时找不到前往~/.bash_profile,找不到
  19. 开源的免费听音乐程序
  20. snipaste截图软件编辑时修改方框粗细

热门文章

  1. 24个SEO优化的写作技巧和写作手法
  2. 小妞会装机 -- 一个装机软件的开发笔记(七)
  3. ali的ons mq运行一段时间后消费下降并导致堆积问题查验
  4. GCJ 2009 Bribe the Prisoners
  5. SQUAD数据集分析
  6. 解决,vlc播放虎牙url只有画面没声音的问题。
  7. 腾讯拟推出个人微信云存储付费服务,你会买单吗?
  8. win10 cvs服务器客户端操作(CVS Suite Studio,TortoiseCVS及WinCVS)
  9. 脑波艺术 · 脑机、数字疗法、人工智能与看不见的“病人”
  10. 在计算机中常用的进制有哪些,计算机中常用的数的进制主要有.doc