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异步回调机制实现和使用方法
Nov 26 Python
Python3实现从指定路径查找文件的方法
May 22 Python
简单理解Python中的装饰器
Jul 31 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
python编写猜数字小游戏
Oct 06 Python
Python文件操作方法详解
Feb 09 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
python识别验证码的思路及解决方案
Sep 13 Python
Python+OpenCV实现在图像上绘制矩形
Mar 21 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
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
php适配器模式简单应用示例
2019/10/23 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
为Python程序添加图形化界面的教程
2015/04/29 Python
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python 探针的实现原理
2016/04/23 Python
python抖音表白程序源代码
2019/04/07 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
实习生自我鉴定
2013/12/12 职场文书
优质服务活动实施方案
2014/05/02 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
Python学习之包与模块详解
2022/03/19 Python
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript