刚刚说过使用python下载微信公众号文章内的视频,有兴趣的同学可以查看上一篇文章,此处就不放文章的链接了。

下面我们继续说一下,如何提取微信公众号文章内的图片并进行下载,下面一起来看一下。

01目标公众号

某某电影

02实现原理

实现原理和下载视频的原理差不多,但是没有那么的请求参数解析了,很多做过爬虫的同学一眼就能看懂,主要是用过微信公众号文章,获取页面的源代码, 通过特定的规则去提取到图片地址,然后对每一张图片进行下载,这里说一下微信公众号文章内图片地址,没有图片名称,图片 格式,都是用过参数的模型进行传递的,我们通过解析参数去获得图片的格式。然后拼接图片名称和图片格式,进行后续的下载保存操作。




java读取微信公众号图片链接_自增

python



03示例代码

1、入口代码

if __name__ == '__main__':   print("微信公众号文章内图片下载~~~~~~~~")   path = main()   if not path:       path = main()# 解析链接analysis(path)

这里的代码模式和视频下载中的是一样的,不做太多的描述性介绍了。

2、文章地址获取

依旧是不断的提示输入微信公众号文章地址,执行用户进行了正确的输入才执行后面的代码操作。

依旧是不断的提示输入微信公众号文章地址,执行用户进行了正确的输入才执行后面的代码操作。

3、图片地址解析




java读取微信公众号图片链接_图片下载_02

代码一




java读取微信公众号图片链接_图片下载_03

代码二



使用requests请求地址并获取页面的源代码,通过BeautifulSoup类库及img[data-ratio]规则获取到所有图片地址,刚刚说过微信公众号内加载的图片是没有图片格式的,下面我们要对获取的图片地址进行就解析获取图片的格式,代码如下:

file_path = v.get("data-src")params = parse.parse_qs(parse.urlparse(file_path).query)# 文件格式ext = params['wx_fmt'][0]

至此,我们已经获取到了图片的地址、图片的格式,关于图片名称的问题,我采用了自增数字的模式,因为采用了循环很好获取到自增数,并且自增数的模式也很放便在下载的目录内查看图片,并且在后面的图片下载中,我们也对每张图片的下载做了提示,方便操作者进行查看。

这里可以做出优化,比如显示图片总数,自定义图片下载位置等操作。

4、下载图片

我们默认将图片的下载地址固定,使用write方式将图片内容写入到文件中,再次需要判断一下图片的状态,是否可以正常的下载图片。在测试过程中遇到了部分的文章无法获取的图片的格式,整体来说下载还是比较可靠的。