爬取微信分享的图片,根据不同的页面自行修改,使用BeautifulSoup爬取,自行格局HTML修改要爬取图片的位置
import re import time import requests import os from bs4 import BeautifulSoup import urllib imglist=[]#存放图片链接 title=''#每日标题 html=input("输入需要获取照片的公众号文章链接:") myhtml = "https://mp.weixin.qq.com/s/kPpWCi1pEXRqjrpVLiclFw"#测试 resp=requests.get(html)#建立链接 content=resp.text#html源代码 bs=BeautifulSoup(content,'html.parser')#解析得到dom树 #获取文章标题,每个文章标题基本上放在h2标签中 title=bs.select('h2')[0].text title=re.findall('[u4e00-u9fa5a-zA-Z0-9]+',title,re.S) #只要字符串中的中文,字母,数字,防止出现文件命名不允许的符号 title="".join(title) #获取图片 allsection = bs.find_all('section', attrs={'data-style-id': '25310'})#根据图片所在的dom结点找到所有,自行修改 for index,item in enumerate(allsection):#遍历找到的 img=item.find('img')#每张图片都是放在img整个标签里面 img=img['data-src']#通过data-src这一个属性来进行进一步筛选 imglist.append(img)#添加到列表 # 将图片保存到E:\文章名文件夹中,如果没有文章名文件夹则创建,自行修改 x = 0 path = 'E:\myphoto\'+title if not os.path.isdir(path): os.makedirs(path) paths = path+'\' #保存在文章名文件的路径下 for imgurl in imglist: urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x)) #打开imglist中保存的图片网址,并下载图片保存在本地,format格式化字符串 x = x + 1 time.sleep(3)#防止请求过多过快导致连接中断 print(x) print(title+'照片获取成功,文件夹已创建!')