您当前的位置:首页 > 计算机 > 编程开发 > Python

Python批量爬取微信公众号文章中的图片

时间:12-27来源:作者:点击数:

总体说明:微信公众号的文章也是个普通的网页。

下面的代码以微信公众号“Python小屋”的文章1900页Python系列PPT分享三:选择与循环结构语法及案例(96页) 为例,爬取其中的图片并保存为本地图片文件,主要演示urllib标准库和正则表达式用法。

按照惯例,首先分析网页结构,该文url地址为https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&tempkey=OTMwX1pNbk5ETmVxTkkwdXpGaWo1RC1GZThwaHlzeHRRb2dfcjRFZmpFc2cyVDhBME82dl82dHVWdks5UDc2SFZtWTN3M2VQQ1BFalRpblpfZUFrdHpEbzBpUDR5OXZRS3N0VzE2WXp4Ym5iNWZmLXVMeDFBeThfZFpKa3VxNHpIT21hNnBTc244THRCQm1leTVSendVRk5zSnNIWldFaHUxRzRJaFU3OGd%2Bfg%3D%3D&chksm=6b8aad835cfd249522b213148affa25de442377adfb83afec75e3321fc6059ff26d2ddd11e04#rd,使用浏览器打开,然后查看源码,找到关键位置,如图所示:

接下来分析网页结构,并设计提取规则为

pattern = 'data-type="png" src="(.+?)"'

最后编写爬虫代码如下:

from re import findall

from urllib.request import urlopen

url = 'https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&tempkey=OTMwX1pNbk5ETmVxTkkwdXpGaWo1RC1GZThwaHlzeHRRb2dfcjRFZmpFc2cyVDhBME82dl82dHVWdks5UDc2SFZtWTN3M2VQQ1BFalRpblpfZUFrdHpEbzBpUDR5OXZRS3N0VzE2WXp4Ym5iNWZmLXVMeDFBeThfZFpKa3VxNHpIT21hNnBTc244THRCQm1leTVSendVRk5zSnNIWldFaHUxRzRJaFU3OGd%2Bfg%3D%3D&chksm=6b8aad835cfd249522b213148affa25de442377adfb83afec75e3321fc6059ff26d2ddd11e04#rd'

with urlopen(url) as fp:

    content = fp.read().decode()

pattern = 'data-type="png" src="(.+?)"'

result = findall(pattern, content)

for index, item in enumerate(result):

    with urlopen(str(item)) as fp:

        with open(str(index)+'.png', 'wb') as fp1:

            fp1.write(fp.read())

           

最后,运行上面的代码,稍等吃5颗瓜子的时间(注意,是用手扒开瓜子,不考虑用牙秒嗑十颗瓜子的老司机),当前文件夹中得到如下图片:

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门