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之模拟鼠标键盘动作具体实现
Dec 30 Python
apache部署python程序出现503错误的解决方法
Jul 24 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
python 输出所有大小写字母的方法
Jan 02 Python
python实现杨氏矩阵查找
Mar 02 Python
详解python运行三种方式
May 13 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
python mysql 字段与关键字冲突的解决方式
Mar 02 Python
用Python生成HTML表格的方法示例
Mar 06 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 Python
详解在OpenCV中如何使用图像像素
Mar 03 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
PHP 判断变量类型实现代码
2009/10/23 PHP
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
PHP5函数小全(分享)
2013/06/06 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
ThinkPHP安装和设置
2015/07/27 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
JS将制定内容复制到剪切板示例代码
2014/02/11 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
AngularJS路由Ui-router模块用法示例
2017/05/29 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
Python3.2模拟实现webqq登录
2016/02/15 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
Java平台和其他软件平台有什么不同
2015/06/05 面试题
开水果连锁店创业计划书
2013/12/29 职场文书
有关打架的检讨书
2014/01/25 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
驾驶员安全责任书
2014/07/22 职场文书
财务总监岗位职责
2015/02/03 职场文书
个人工作表现自我评价
2015/03/06 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
JavaScript流程控制(循环)
2021/12/06 Javascript
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android