python抓取微信公众号新闻文章图片

在看公众号新闻的时候,总会有一些有用的PPT图片啥的想保存下来。

那么用python如何抓取来,简单介绍一下。

比如这个网址,https://mp.weixin.qq.com/s/-rj91sCpeaURAU5hWe_sjQ

里面有20多张PPT的截图。

首先,打开网页的源代码。可以看到,data-src后面的URL就是我们需要的图片的地址。

那么,我们可以通过正则表达式,把所有的图片链接找出来,存在List里面,然后循环下载它们。

Python代码如下。

import urllib.request
import re
import os
import urllib
#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码
def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html.decode('UTF-8')

def getImg(html):
    reg = r'data-ratio="0.5625" data-s="300,640" data-src="(.+?)" data-type="jpeg"'  #括号里面就是我们要取得的图片网址
    imgre = re.compile(reg)
    imglist = imgre.findall(html)#表示在整个网页中过滤出所有图片的地址,放在imglist中
    x = 0
    path = 'D:\\pyCode\\pic'
    # 将图片保存到D:\\test文件夹中,如果没有test文件夹则创建
    if not os.path.isdir(path):
        os.makedirs(path)
    paths = path+'\\'      #保存在test路径下

    for imgurl in imglist:
        urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x))  #打开imglist中保存的图片网址,并下载图片保存在本地,format格式化字符串
        x = x + 1
    return imglist
html = getHtml("https://mp.weixin.qq.com/s/-rj91sCpeaURAU5hWe_sjQ")#获取该网址网页详细信息,得到的html就是网页的源代码
print (getImg(html)) #从网页源代码中分析并下载保存图片

正则表达式写的条件比较多,是为了能够精准匹配。

运行后,图片就会保存到你设定的path里面了。

发布了90 篇原创文章 · 获赞 3 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/sunnyboychina/article/details/103751187
今日推荐