python爬虫——爬取NUS-WIDE数据库图片

时间:2022-12-25 16:18:53

   实验室需要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)

update 1:

我在使用数据集的nus-wide-urls.txt文件时,为了避免‘\’的转义字符问题,将其中的'\'替换为了'/'。