我正在尝试从imgnet链接中收集图像并将其保存在文件夹中。使用urllib.urlretrieve,直到知道它工作得很好。 主要问题是当函数试图访问 DNS 无法解析的主机时。 我的链接是:http : //www.fuminnaosu.com/image/person/kitamura.jpg
当每个 DNS 都无法解析时(可能会被删除),但它仍然在列表中。Try&Except 目前无法在我的项目中使用,有什么方法可以在不使用 Try&Except 的情况下通过并继续收集?我的错误是:
File "C:\Anaconda2\lib\socket.py", line 557, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
IOError: [Errno socket error] [Errno 11001] getaddrinfo failed
我的代码:
import cv2
import numpy as np
import os
import urllib
def get_images_to_dir():
images_list_lnk = 'http://image-net.org/api/text/imagenet.synset.geturls?wnid=n09618957'
images_url = urllib.urlopen(images_list_lnk)
urls = images_url.read()
img_typ = 'neg'
if not os.path.exists(img_typ):
os.mkdir(img_typ)
images_counter = 1
for url in urls.split('\n'):
img_name = img_typ+'/'+str(images_counter)+'.jpg'
urllib.urlretrieve(url, img_name)
img = cv2.imread(img_name, cv2.IMREAD_GRAYSCALE)
if (img is not None): # If connection success, but no image was found
img = cv2.resize(img, (100, 100))
cv2.imwrite(img_name, img)
images_counter += 1
相关分类