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 相关文章推荐
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
基于Python log 的正确打开方式
Apr 28 Python
Python退火算法在高次方程的应用
Jul 26 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
Jan 17 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
php中的登陆login
2007/01/18 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
2020/10/02 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
python引用DLL文件的方法
2015/05/11 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
建筑院校毕业生求职信
2014/06/13 职场文书
新闻编辑求职信
2014/07/13 职场文书
会计学专业求职信
2014/07/17 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
会议简讯范文
2015/07/20 职场文书