如何检查 urllib.urlretrieve 是否能够使用 python 访问主机?

我正在尝试从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


翻过高山走不出你
浏览 184回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python