软件开发定制Python爬虫爬取网页上的所有图片

一. 前言

软件开发定制以该网页为例,软件开发定制上面有图片形式的PPT内容,软件开发定制我的目的是将所有图片软件开发定制下载下来保存到本地,软件开发定制如果鼠标一张一张点击下载效率很低,于是可以用批量爬取图片。

采用爬虫爬取网页中的图片主要分为两个步骤:

  1. 获取网页中所有图片的链接;
  2. 下载图片对应链接并保存在本地。

接下来我将分别从以上两个步骤讲解图片爬取过程。

二. 获取图片链接

在网页中按下键盘右上角的F12,找到网页的Html,如图所示:


当我们的鼠标在Html上移动时,左边对应位置处将会变成蓝色。在Html中查找img,直到看到左边图片对应的部分变成蓝色了,就说明找到了该图片对应的Html语句,如图所示:


展开Html语句,可以看到里面包含了图片的链接:

其他图片链接的位置同理,可以发现他们都有一个共同点,那就是图片的链接都出现在data-src= data-type=之间,利用正则表达式即可获取所有图片的链接。

三. 批量下载图片

这部分比较简单,只需要循环访问图片链接,下载后保存到本地即可。

完整程序如下所示:

# -*- coding: utf-8 -*-import reimport requestsfrom urllib import errorfrom bs4 import BeautifulSoupimport osfile = ''List = []#爬取图片链接def Find(url, A):    global List    print('正在检测图片总数,请稍等.....')    s = 0    try:        Result = A.get(url, timeout=7, allow_redirects=False)    except BaseException:        print("error");    else:        result = Result.text        pic_url = re.findall('data-src="(.*?)" data-type', result)  # 先利用正则表达式找到图片url        s += len(pic_url)        if len(pic_url) == 0:            print("没读到")        else:            List.append(pic_url)    return s#下载图片def dowmloadPicture():    num = 1    for each in List[0]:        print('正在下载第' + str(num) + '张图片,图片地址:' + str(each))        try:            if each is not None:                pic = requests.get(each, timeout=7)            else:                continue        except BaseException:            print('错误,当前图片无法下载')            continue        else:            if len(pic.content) < 200:                continue            string = file + r'\\'  + str(num) + '.jpg'            fp = open(string, 'wb')            fp.write(pic.content)            fp.close()            num+=1if __name__ == '__main__':  # 主函数入口    headers = {        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',        'Connection': 'keep-alive',        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0',        'Upgrade-Insecure-Requests': '1'    }    A = requests.Session()    A.headers = headers    url = 'https://mp.weixin.qq.com/s/An0nKnwlml9gvyUDyT65zQ'    total = Find(url, A)    print('经过检测图片共有%d张' % (total))    file = input('请建立一个存储图片的文件夹,输入文件夹名称即可: ')    y = os.path.exists(file)    if y == 1:        print('该文件已存在,请重新输入')        file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可: ')        os.mkdir(file)    else:        os.mkdir(file)    dowmloadPicture()    print('当前爬取结束,感谢使用')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79

程序使用时仅需要修改网址链接即可,必要时需要修改正则表达式。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发