zoukankan      html  css  js  c++  java
  • 使用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+'照片获取成功,文件夹已创建!')
  • 相关阅读:
    数据库事务查看
    在SQL中删除重复记录(多种方法)
    OO设计原则
    NHibernate开源框架Cuyahoga学习之权限映射
    链队列的实现
    二叉树的实现
    NHibernate.cfg.xml文件配置
    HQL查询实例
    对象枚举遍历实现二
    NHibernate开源框架Cuyahoga学习之数据访问泛型约束的实现
  • 原文地址:https://www.cnblogs.com/zhukaile/p/15038554.html
Copyright © 2011-2022 走看看