1. 缘起
在看完人生第一部番剧《青春猪头少年不会梦到兔女郎学姐》之后,在同学的推荐下接触到了《魔法禁书目录》系列以及B站镇站番《某科学的超电磁炮》系列。作为魔禁的外传,从漫画衍生出动画,超炮不仅成功地对魔禁的世界观与故事线起了补充作用,同时也大大饱满了御坂美琴的人物形象。
就人设完整性来说,个人认为御坂的人设比当麻更为完整,第一季中带着学园都市好人侧最强战斗力光环的炮姐单方面屠杀,因此轻松的卖萌日常也很多塑造了炮姐阳光霸气的一面;而S篇中,展示了学园都市的黑暗面,对抗绝对能力计划让炮姐看到了学园都市的黑暗,发现自己的力量完全无法和一方、研究计划来对抗,在无助和绝望中流露出一个14岁女生的脆弱(人设14岁……除了胸之外根本不像是个14岁的好吗)。两方面的对比,如同硬币的两面,使得御坂美琴的人物刻画更为完整,也正因为这样,才有了”看漫画补全超炮世界观“的想法。(另外两季OP很燃,带我入坑的同学说:“自古肉番出燃曲”)这个影评写的蛮好的,总结的很到位(给作者点赞o( ̄ ̄)d )
目前『超炮』还在连载(理论上是月更,但是一个月还是三个月就不好说了),手机看漫画横竖都不舒服,也没有找到打包下载的途径,于是就想先一口气把在线漫画按照图片都下载下来,导到平板里看(随意放大缩小,还不用等加载),正所谓独乐乐不如众乐乐,把脚本分享出来(代码为Python3下载链接),方便喜欢『超炮』想追漫画的各位。
之后就是记录一下怎么实现的了,其实就是一个自动化访问的小脚本,并不复杂。
2. 前期准备
-
用手机看在线漫画的之后找到了kuku漫画,整个页面广告只有一块而且还在页面最下边,阅读体验还是蛮好的,用电脑也可以访问这个手机端的网页,为后续工作省了很多麻烦
- 登录这个超炮的目录页面之后,右键看源码,发现所有的目录连接都在里边(吐槽一下,源码就一行……特别长的一行)这样一来,右键另存为,直接从里边比配字符串就可以生成一个各章节地址的列表了,不过为简化操作,这一步也加到程序里了…… 一行?!
-
进入每一章都可以发现,其地址格式是同一的,都是以『页码.htm』结尾,这样可以通过不断递增页码值来访问每章的各页
-
通过看源码,可以得到每页漫画对应的图片源文件(有时候是jpg、有时候是png格式)
-
自动化把这些图片下载下来,按照章节建立文件夹存起来就可以『看漫一时爽,一直看漫一直爽』了
3. 主要功能代码
-
识别并生成各章节地址,转存到“content.txt”文本文件中(我一开始是把生成目录和下载漫画分开来做的,所以这一步生成了一个单独的文件(〃''〃))另外由于网页是gbk编码的,我不知道如何将gbk转换为utf-8编码模式,因此产生一个中间文件(会被自动删除),如果各位有解决方案的话欢迎留言
model = r"<a href=\"([\S|\w|\d]+.htm)\">([\S]+)</a></li>"
-
生成并访问某一章节的各个页面
j = 1 # j is the number of imagePage while True: imagePage = baseUrl+str(j)+'.htm' response = requests.get(url=imagePage, headers=header)
-
识别各个页面中的图片地址,下载图片
reModel = re.compile(b"document.write\(\"<a\shref=\'([\S]*?.htm)\'><IMG\sSRC=\'\"[\S]*?\+\"([\S|\s]*?)\'></a>") urlImage = urlImageBase+quote(reFind[0][1]) imageResponse = requests.get(url=urlImage, headers=header) while reErrorModel.match(imageResponse.content): time.sleep(1) imageResponse = requests.get(url=urlImage, headers=header) with open(str(dirName)+str(j)+str(reFind[0][1][-4:])[2:-1],'wb') as f: f.write(imageResponse.content)
4. 完成效果
- 生成的目录文件
- 下载下来的漫画
- 导入到平板里
网友评论