(由于简书无法将代码以文本形式较好地呈现,故本文代码部分将以图片形式呈现,若有文本代码的需要,请移步至
淀粉月刊官网原文
)
大妈之家最近又在自审了,虽然社区版客户端还能用,网页端也能用,但是为了防止下一次自审,以及以后的作品被ban,总要找个后备方案。
(UWP客户端,确信)
python脚本爬取图片,便是其中一种。
0. 环境
本文默认读者已经安装和正确配置如下环境
python3(愤鸟的版本为3.8.2),需安装requests、lxml、urllib、selenium
FireFox及其对应selenium WebDriver(Chrom(ium)、Edge(两个版本)、Internet Explorer、Opera 和 Safari也可以,其他浏览器不保证能用)
selenium的安装可参考
这篇文章
,但愤鸟建议安装好WebDriver以后,将WebDriver所在路径添加至系统环境变量里。
1. 思路
要实现爬取、下载大妈之家的漫画图片,我们需要
解析、获取图片链接
;为了方便查看,需要
将每话的图片单独放到一个文件夹内
,最好可以将
每个作品使用一个文件夹存放
;有余力的话,可以做出简单的
防止重复下载
功能。
为了实现
解析、获取图片链接
,我们需要分析观看漫画页面的源代码。经过实践得知,大妈之家的观看漫画页的图片为
通过js动态加载
,那么我们需要从以下两个方案中选择一种:用python
运行js脚本
从而获取图片链接;用selenium
操作浏览器,使页面加载完成
后取得图片链接。愤鸟选择了后一种方案,该方案的优势是:代码好写,易读;劣势是:由于要等待浏览器,因此效率较低,而且会吃内存。
为了实现
将每话的图片单独放到一个文件夹内
和
每个作品使用一个文件夹存放
,我们需要在漫画详情页获取各话链接。同时还要检测文件夹是否存在,并适时创建文件夹。
为了实现
防止重复下载
,我们需要
设置一个标记
,证明我们下载过这一话。愤鸟选择的方案是在下载完成后
放置一个空白文件作为标记
。
整个程序的流程为: