使用BeautifulSoup自动爬取微信公众号图片
爬取微信分享的图片,根据不同的页面自行修改,使用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+'照片获取成功,文件夹已创建!')
本文作者:durtime
本文链接:https://www.cnblogs.com/durtime/p/15038554.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2020-07-21 每日日报