• 技术文章 >后端开发 >Python教程

    实例详解Python实现简单网页图片抓取

    小云云小云云2017-12-18 10:52:09原创2808
    本文主要介绍了Python实现简单网页图片抓取完整代码实例,具有一定借鉴价值,需要的朋友可以参考下。

    利用python抓取网络图片的步骤是:
    1、根据给定的网址获取网页源代码
    2、利用正则表达式把源代码中的图片地址过滤出来
    3、根据过滤出来的图片地址下载网络图片

    以下是比较简单的一个抓取某一个百度贴吧网页的图片的实现:


    # -*- coding: utf-8 -*- 
    # feimengjuan 
    import re 
    import urllib 
    import urllib2 
    #抓取网页图片  
    #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 
    def getHtml(url): 
      page = urllib.urlopen(url) 
      html = page.read() 
      return html 
     def getImg(html): 
      #利用正则表达式把源代码中的图片地址过滤出来 
      reg = r'src="(.+?\.jpg)" pic_ext' 
      imgre = re.compile(reg) 
      imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中 
      x = 0 
      for imgurl in imglist: 
        urllib.urlretrieve(imgurl,'%s.jpg' %x) #打开imglist中保存的图片网址,并下载图片保存在本地 
        x = x + 1 
     html = getHtml("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码 
    getImg(html)#从网页源代码中分析并下载保存图片

    进一步对代码进行了整理,在本地创建了一个“图片”文件夹来保存图片


    # -*- coding: utf-8 -*- 
    # feimengjuan 
    import re 
    import urllib 
    import urllib2 
    import os 
    #抓取网页图片  
    #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 
    def getHtml(url): 
      page = urllib.urlopen(url) 
      html = page.read() 
      return html 
     
    #创建保存图片的文件夹 
    def mkdir(path): 
      path = path.strip() 
      # 判断路径是否存在 
      # 存在  True 
      # 不存在 Flase 
      isExists = os.path.exists(path) 
      if not isExists: 
        print u'新建了名字叫做',path,u'的文件夹' 
        # 创建目录操作函数 
        os.makedirs(path) 
        return True 
      else: 
        # 如果目录存在则不创建,并提示目录已经存在 
        print u'名为',path,u'的文件夹已经创建成功' 
        return False 
    # 输入文件名,保存多张图片 
    def saveImages(imglist,name): 
      number = 1 
      for imageURL in imglist: 
        splitPath = imageURL.split('.') 
        fTail = splitPath.pop() 
        if len(fTail) > 3: 
          fTail = 'jpg' 
        fileName = name + "/" + str(number) + "." + fTail 
        # 对于每张图片地址,进行保存 
        try: 
          u = urllib2.urlopen(imageURL) 
          data = u.read() 
          f = open(fileName,'wb+') 
          f.write(data) 
          print u'正在保存的一张图片为',fileName 
          f.close() 
        except urllib2.URLError as e: 
          print (e.reason) 
        number += 1  
    #获取网页中所有图片的地址 
    def getAllImg(html): 
      #利用正则表达式把源代码中的图片地址过滤出来 
      reg = r'src="(.+?\.jpg)" pic_ext' 
      imgre = re.compile(reg) 
      imglist = imgre.findall(html) #表示在整个网页中过滤出所有图片的地址,放在imglist中 
      return imglist   
    #创建本地保存文件夹,并下载保存图片 
    if __name__ == '__main__': 
      html = getHtml("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码 
      path = u'图片' 
      mkdir(path) #创建本地文件夹 
      imglist = getAllImg(html) #获取图片的地址列表 
      saveImages(imglist,path) # 保存图片

    结果在“图片”文件夹下保存了几十张图片,如截图:

    相关推荐:

    PHP简单网页图片抓取类

    如何把这里的图片抓取到本地

    PHP+Ajax远程图片抓取器下载的例子

    以上就是实例详解Python实现简单网页图片抓取的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Python 简单 实现
    上一篇:详解神经网络理论基础及Python实现方法 下一篇:Python 中正则表达式详解
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• Python接口自动化测试必备基础之http协议详解• Python 3.11中的最佳新功能和功能修复• 实例详解Python面向对象的四大特征• Python数据分析之concat与merge函数(实例详解)• 一起聊聊Python的编码样式
    1/1

    PHP中文网