python爬取NUS-WIDE数据库图片


Posted in Python onOctober 05, 2016

实验室需要NUS-WIDE数据库中的原图,数据集的地址为http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm   由于这个数据只给了每个图片的URL,所以需要一个小爬虫程序来爬取这些图片。在图片的下载过程中建议使用VPN。由于一些URL已经失效,所以会下载一些无效的图片。

# PYTHON 2.7   Ubuntu 14.04
nuswide = "$NUS-WIDE-urls_ROOT" #the location of your nus-wide-urls.txt
imagepath = "$IMAGE_ROOT" # path of dataset you want to download in
f = open(nuswide, 'r')
url = f.readlines()
import re
import urllib
import os
reg = r"ImageData.+?jpg"
location_re = re.compile(reg)
reg = r"(ImageData.+?)/0"
direction_re = re.compile(reg)
reg = r"http.+?jpg"
image_re = re.compile(reg)
for i in url:
  filename = re.findall(location_re, i)
  direction = re.findall(direction_re, i)
  image = re.findall(image_re, i)
  if image:
    path = imagepath+filename[0]
    path_n = imagepath+direction[0]
    print path_n
    if os.path.exists(path_n):
      urllib.urlretrieve(image[1], path)
    else:
      os.makedirs(path_n)
      urllib.urlretrieve(image[1], path)

再给大家分享一个爬取百度贴吧图片的小爬虫(你懂得)

#coding=utf-8

#urllib模块提供了读取Web页面数据的接口
import urllib
#re模块主要包含了正则表达式
import re
#定义一个getHtml()函数
def getHtml(url):
  page = urllib.urlopen(url) #urllib.urlopen()方法用于打开一个URL地址
  html = page.read() #read()方法用于读取URL上的数据
  return html

def getImg(html):
  reg = r'src="(.+?\.jpg)" pic_ext'  #正则表达式,得到图片地址
  imgre = re.compile(reg)   #re.compile() 可以把正则表达式编译成一个正则表达式对象.
  imglist = re.findall(imgre,html)   #re.findall() 方法读取html 中包含 imgre(正则表达式)的  数据
  #把筛选的图片地址通过for循环遍历并保存到本地
  #核心是urllib.urlretrieve()方法,直接将远程数据下载到本地,图片通过x依次递增命名
  x = 0

  for imgurl in imglist:
  urllib.urlretrieve(imgurl,'D:\E\%s.jpg' % x)
      x+=1


html = getHtml("http://tieba.baidu.com/p/xxxx")
print getImg(html)
Python 相关文章推荐
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
python编写Logistic逻辑回归
Dec 30 Python
在Python中获取操作系统的进程信息
Aug 27 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
python不同版本的_new_不同点总结
Dec 09 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
python2.7的编码问题与解决方法
Oct 04 #Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 #Python
Python实现屏幕截图的代码及函数详解
Oct 01 #Python
Python爬取APP下载链接的实现方法
Sep 30 #Python
Python脚本实现12306火车票查询系统
Sep 30 #Python
Python ldap实现登录实例代码
Sep 30 #Python
python之Socket网络编程详解
Sep 29 #Python
You might like
php简单计算页面加载时间的方法
2015/06/19 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
javascript操作文本框readOnly
2007/05/15 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
React组件的三种写法总结
2017/01/12 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
使用python求解二次规划的问题
2020/02/29 Python
python 实现简易的记事本
2020/11/30 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
面向对象编程的优势是什么
2015/12/17 面试题
校园网站的创业计划书范文
2013/12/30 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
委托书样本
2014/04/02 职场文书
英语故事演讲稿
2014/04/29 职场文书
检讨书大全
2015/01/27 职场文书
骨干教师个人总结
2015/02/11 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python