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通过线程实现定时器timer的方法
Mar 16 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
Python实现选择排序
Jun 04 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
Python实现滑动平均(Moving Average)的例子
Aug 24 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
Python实现Kerberos用户的增删改查操作
Dec 14 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
Python学习之时间包使用教程详解
Mar 21 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面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php自定义hash函数实例
2015/05/05 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
python使用cPickle模块序列化实例
2014/09/25 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
python 异步async库的使用说明
2020/05/04 Python
Python xlwt模块使用代码实例
2020/06/10 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
七年级英语教学反思
2014/01/15 职场文书
运动会邀请函范文
2014/01/31 职场文书
交通事故私了协议书
2014/04/16 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
公司离职证明标准范本
2014/10/05 职场文书
英语通知范文
2015/04/22 职场文书
企业计划生育责任书
2015/05/09 职场文书
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
win7配置本地ftp服务器的图文教程
2022/08/05 Servers