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 相关文章推荐
使用python提取html文件中的特定数据的实现代码
Mar 24 Python
python标准日志模块logging的使用方法
Nov 01 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
python django 实现验证码的功能实例代码
May 18 Python
python使用pycharm环境调用opencv库
Feb 11 Python
python re库的正则表达式入门学习教程
Mar 08 Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 Python
如何基于Python创建目录文件夹
Dec 31 Python
Python基于Socket实现简单聊天室
Feb 17 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
python安装第三方库如xlrd的方法
Oct 31 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应用技巧
2008/03/27 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
重定向实现代码
2006/11/20 Javascript
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
关于python中的xpath解析定位
2020/03/06 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
应届实习生的自我评价范文
2014/01/05 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
创先争优宣传标语
2014/10/08 职场文书
2014年实习生工作总结
2014/11/27 职场文书
纪检监察立案决定书
2015/06/24 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书