实验室需要NUS-WIDE数据库中的原图,数据集的地址为http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm 由于这个数据只给了每个图片的URL,所以需要一个小爬虫程序来爬取这些图片。在图片的下载过程中建议使用VPN。由于一些URL已经失效,所以会下载一些无效的图片。
# PYTHON 2.7 Ubuntu 14.04nuswIDe = "$NUS-WIDE-urls_ROOT" #the location of your nus-wIDe-urls.txtimagepath = "$IMAGE_ROOT" # path of dataset you want to download inf = open(nuswIDe,'r')url = f.readlines()import reimport urllibimport osreg = 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 HTMLdef 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+=1HTML = getHTML("http://tIEba.baIDu.com/p/xxxx")print getimg(HTML)总结
以上是内存溢出为你收集整理的python爬取NUS-WIDE数据库图片全部内容,希望文章能够帮你解决python爬取NUS-WIDE数据库图片所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)