Python实现简单网页图片抓取完整代码实例


Posted in Python onDecember 15, 2017

利用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) # 保存图片

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

Python实现简单网页图片抓取完整代码实例

总结

以上就是本文关于Python实现简单网页图片抓取完整代码实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Cython 三分钟入门教程
Sep 17 Python
Python+django实现文件上传
Jan 17 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
Python实现批量压缩图片
Jan 25 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
Nov 10 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 #Python
神经网络python源码分享
Dec 15 #Python
神经网络理论基础及Python实现详解
Dec 15 #Python
浅谈机器学习需要的了解的十大算法
Dec 15 #Python
python实现协同过滤推荐算法完整代码示例
Dec 15 #Python
python3大文件解压和基本操作
Dec 15 #Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 #Python
You might like
PHP答题类应用接口实例
2015/02/09 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
浅析Python中的序列化存储的方法
2015/04/28 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
求职信格式范本
2013/11/15 职场文书
产品发布会策划方案
2014/05/12 职场文书
空气的环保标语
2014/06/12 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
小石潭记导游词
2015/02/03 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
信访工作个人总结
2015/03/03 职场文书
职位证明模板
2015/06/23 职场文书