文档章节

python3写的腾讯漫画下载器

Feng_Yu
 Feng_Yu
发布于 2014/07/24 22:24
字数 273
阅读 4309
收藏 19

代码很稀烂,开坑后一个月的时间,断断续续总算是写完了,主体功能完成,顺便PYQT5写了个GUI,并用cx_freeze打包,可以在windows下用。

项目托管在github: https://github.com/abcfy2/getComic

git@osc镜像仓库: http://git.oschina.net/abcfy2/getComic

预览效果

放几张预览图,支持不连续的章节选择下载。

windows下的效果:

在此输入图片描述

在此输入图片描述

deepin下效果:

在此输入图片描述

算法描述

腾讯的漫画从PC版访问时看到的是flash,但是移动版的页面却是图片,用ipad的UA请求ac.qq.com可以发现跳转为m.ac.qq.com,从这里入手就可以下载jpg的图片了。

页面的图片是用js生成的,用文本编辑器手工换行就可以很明确的看到js获取图片URL的算法,用python实现即可。

对于http://ac.qq.com/bleach, http://ac.qq.com/cf等这样的地址,用ipad的UA请求后可以直接跳转为m.ac.qq.com的地址,这个地址会带有id参数,就可以获取到图片了。

© 著作权归作者所有

共有 人打赏支持
Feng_Yu
粉丝 157
博文 38
码字总数 45571
作品 0
西安
运维
私信 提问
加载中

评论(28)

Feng_Yu
Feng_Yu

引用来自“kunkun2004”的评论

解析后,番外不出现啊

引用来自“Feng_Yu”的评论

能否给出漫画地址?我看看是怎么回事?如果你的是那种多个漫画(比如火影忍者的彩漫和黑白漫画)公用一个URL的,在PC页面是没法解析的。需要从m.ac.qq.com移动端页面进去,搜索地址才是不同的漫画id

引用来自“kunkun2004”的评论

http://ac.qq.com/Comic/ComicInfo/id/505430
跟火影忍者的一样。你看我的项目的README,说明过这种情况。因为这俩漫画实际是不同的ID,但是在PC端页面URL显示为同一个。我的脚本通过抓取URL正则解析漫画ID的。所以你需要从m.ac.qq.com进去搜索漫画,这样你会发现番外篇的URL是这个: http://m.ac.qq.com/comic/index/id/531616,明显可以看到ID和PC端那个是不一样的。粘贴这个地址就是番外篇的
kunkun2004
kunkun2004

引用来自“kunkun2004”的评论

解析后,番外不出现啊

引用来自“Feng_Yu”的评论

能否给出漫画地址?我看看是怎么回事?如果你的是那种多个漫画(比如火影忍者的彩漫和黑白漫画)公用一个URL的,在PC页面是没法解析的。需要从m.ac.qq.com移动端页面进去,搜索地址才是不同的漫画id
我傻了,谢谢
kunkun2004
kunkun2004

引用来自“kunkun2004”的评论

解析后,番外不出现啊

引用来自“Feng_Yu”的评论

能否给出漫画地址?我看看是怎么回事?如果你的是那种多个漫画(比如火影忍者的彩漫和黑白漫画)公用一个URL的,在PC页面是没法解析的。需要从m.ac.qq.com移动端页面进去,搜索地址才是不同的漫画id
http://ac.qq.com/Comic/ComicInfo/id/505430
Feng_Yu
Feng_Yu

引用来自“kunkun2004”的评论

解析后,番外不出现啊
能否给出漫画地址?我看看是怎么回事?如果你的是那种多个漫画(比如火影忍者的彩漫和黑白漫画)公用一个URL的,在PC页面是没法解析的。需要从m.ac.qq.com移动端页面进去,搜索地址才是不同的漫画id
kunkun2004
kunkun2004
解析后,番外不出现啊
Feng_Yu
Feng_Yu

引用来自“kunkun2004”的评论

打包的那个,下VIP的漫画只能下一页,失效了吗,还有救吗
暂时没办法了,TX把这个漏洞堵住了,没登录的就是只能看到收费章节的第一页图片。暂时我没找到好办法解决。
kunkun2004
kunkun2004
打包的那个,下VIP的漫画只能下一页,失效了吗,还有救吗
Feng_Yu
Feng_Yu

引用来自“法人代表”的评论

好像python3 TX comic这个失效了,不知道还有救没
没失效啊:
./getComic.py -u http://ac.qq.com/Comic/comicInfo/id/531490
漫画名: 一人之下
简介: 随着爷爷尸体被盗,神秘少女冯宝宝的造访,少年张楚岚的平静校园生活被彻底颠覆。急于解开爷爷和自身秘密的张楚岚和没有任何记忆“不死少女”冯宝宝开启了“异人”之旅……交流群:470599680
章节数: 262
章节列表:
1.姐姐1
2.姐姐2
3.一大波丧尸
4.大学快成义务教育了

windows打包版本那个很久没更新了,我本地以前的windows虚拟机被干掉了,就再也没去做cx_freeze打包了。用源码跑吧。
法人代表
好像python3 TX comic这个失效了,不知道还有救没
Feng_Yu
Feng_Yu

引用来自“Feng_Yu”的评论

curl -v -b cookies.txt -c cookies.txt -H 'Referer: http://m.ac.qq.com/Comic/view/id/505430/cid/801/pid/18449' 'http://m.ac.qq.com/View/mGetPicHash?
id=505430&cid=801' 请求两次,你就会发现返回json了,第一次请求的时候服务端响应头已经有Set-Cookie: ac_refer=http%3A%2F%2Fm.ac.qq.com%2FComic%2Fview%2Fid%2F505430%2Fcid%2F801%2Fpid%2F18449; 这个我记得我当时改这段代码的时候是没有的,不知道什么时候加上了。打开cookies.txt,也可以看到加入了这个cookie

引用来自“fashu”的评论

恩恩,那就是我没有加上Cookies了,我再试试,不会再来请教,谢谢啦

引用来自“Feng_Yu”的评论

cookie的ac_refer这个参数为空都是可以的。所以你只需要设置一下header,加上{'Cookie': 'ac_refer='}就可以了

引用来自“fashu”的评论

恩恩,cookies里面必须要有ac_refer而且不能为空,我现在实验的要是为空的话是得不到数据的
请求这个json页面,如果是收费漫画的话只能返回第一张预览图片了。最早是可以返回整个漫画章节的,当时腾讯只在前端页面做了认证,api却没有认证,现在不行了。我以为PC端页面会不一样,刚才看了一下,收费章节的base64串明显短,在开发者工具调试js运行结果也看到解密出来的也只有一张图。如果你有什么好办法在不登录的情况下能拿到收费章节的列表,也欢迎分享。
Feng_Yu/getComic

getComic 本代码仅供学习交流使用,严禁用于非法用途,各种PR都欢迎 下载腾讯漫画的脚本。空参运行进入交互式模式,支持的参数可以加或参数查看。 GUI版本提供windows下打包好的版本 点此下载...

Feng_Yu
2015/02/05
0
0
Python3 如何使用NLTK处理语言数据

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由冰糖葫芦 发表于云+社区专栏 介绍 文本已成为最常见的表达形式之一。我们每天都要发送电子邮件、短信、推文、更新状态。因...

云加社区
07/24
0
0
入门系列之:Python3 如何使用NLTK处理语言数据

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由冰糖葫芦 发表于云+社区专栏 介绍 文本已成为最常见的表达形式之一。我们每天都要发送电子邮件、短信、推文、更新状态。因...

腾讯云加社区
07/24
0
0
Python实用教学:如何用Python玩转各大网站

Hi~,各位小伙伴,Python是目前编程语言中的主流语言之一,也是公认最容易入门的编程语言,因为Python语言近几年的火爆,有很多小伙伴都开始学习这门语言。 编程语言学习,最重要的是“多看代...

W3Cschool小编
07/31
0
0
国内顶尖白帽子用Python打造渗透工具集,当时花上万购买都被拒!

前言 python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。 一、信息搜集--py端口扫描小脚本...

诸葛青云999
08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
3
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0
小白带你认识netty(二)之netty服务端启动(上)

上一章 中的标准netty启动代码中,ServerBootstrap到底是如何启动的呢?这一章我们来瞅下。 server.group(bossGroup, workGroup);server.channel(NioServerSocketChannel.class).optio...

天空小小
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部