文档章节

python3写的腾讯漫画下载器

Feng_Yu
 Feng_Yu
发布于 2014/07/24 22:24
字数 273
阅读 4171
收藏 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
粉丝 156
博文 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运行结果也看到解密出来的也只有一张图。如果你有什么好办法在不登录的情况下能拿到收费章节的列表,也欢迎分享。
Python实用教学:如何用Python玩转各大网站

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

W3Cschool小编
07/31
0
0
入门系列之:Python3 如何使用NLTK处理语言数据

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

腾讯云加社区
07/24
0
0
Feng_Yu/getComic

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

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

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

云加社区
07/24
0
0
国内顶尖白帽子用Python打造渗透工具集,当时花上万购买都被拒!

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

诸葛青云999
08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之高级类型的索引类型(Index types)

转发 TypeScript基础入门之高级类型的索引类型(Index types) 高级类型 索引类型(Index types) 使用索引类型,编译器就能够检查使用了动态属性名的代码。 例如,一个常见的JavaScript模式是从...

durban
5分钟前
0
0
利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

Linux就该这么学
40分钟前
0
0
图像显示深入学习一:Activity启动过程

一个月左右写了图像显示深入学习之文章开篇文章表明了自己近期的计划,前半年重新学习了opengl es,c++以及Linux的一些知识,觉得是时候开始看图像这一块的源码了,边看边补缺补漏吧。 作为该...

JerryLin123
今天
1
0
给MySQL授权远程访问

putty登录服务器; 登录MySQL: mysql -u root -p 新建远程用户: CREATE USER 'myusername' IDENTIFIED BY 'mypassword'; 授权: grant all on *.* to john@'101.102.103.104' identified by......

sweethome
今天
1
0
在t-io老巢造谣,不过有造谣的就会有反造谣的!

只发当事人的截图,不发表评论,以免有引导嫌疑 PS: 截图是由不同的人发过来的 本人已经不在此微信群 图3:有造谣的,就有反造谣的 图4是2018-09-23的t-io官方群的一个发言小统计,有助于让...

talent-tan
今天
102
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部