经常我们导师丢一个微信文章过来,让我们把其中的图片整理成文档学习。有时候文章里面的图片特别多,这个时候一张一张的保存就太费时。使用Python自动保存看起来是个不错的办法。
# coding=utf-8
import re
import requests
def spider(paperurl, picpat):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
response = requests.get(paperurl, headers=headers).text
pattern = re.compile(picpat)
data = pattern.findall(response)
for i in range(0, len(data)):
picurl = data[i]
print(picurl)
write(picurl, i)
def write(picurl, i):
data = requests.get(picurl).content
with open("D:\Desktop\微信jpeg\\{}.jpeg".format(i), "wb") as f:
f.write(data)
if __name__ == '__main__':
paperurl = r"https://mp.weixin.qq.com/s/7huJOS7G4HEZYx1FtOTxIw"
picpat = r'<img data-ratio="[\s\S]*?" data-src="(.*?)" data-type="jpeg" data-w="[\s\S]*?"'
spider(paperurl, picpat)
主要是根据正则表达式来抽取图片的链接,再批量保存。这里的 picpat 需要具体分析文章的源代码来填写。
这里的示例微信文章的链接是清华大学龙瀛老师的《新城市科学概论》的课件ppt,在此表示感谢。