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实现截屏的函数
Jul 26 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
python文件读写代码实例
Oct 21 Python
python实现根据文件格式分类
Oct 31 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Django中日期时间型字段进行年月日时分秒分组统计
Nov 27 Python
Python 线程池模块之多线程操作代码
May 20 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 27 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
accesskey 提交
2006/06/26 Javascript
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
js实现tab切换效果
2017/02/16 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
简短的公司员工自我评价分享
2013/11/13 职场文书
应用艺术毕业生的自我评价
2013/12/04 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
青春寄语大全
2014/04/09 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript