Скачать изображение с URL в python: gaierror - PullRequest
1 голос
/ 01 августа 2020

Я пытаюсь загрузить изображение с URL-адресом в python, но, к сожалению, я получаю сообщение об ошибке и не знаю, как с этим бороться.

Я использую следующий код:

def dowload(url_img):
    try :
        r = requests.get(url_img)
        with open('a.jpg', 'wb') as f:
           f.write(r.content)
    except urllib2.HTTPError:
        print("Some Err")
    if os.path.exists("a.jpg"):
       os.remove("a.jpg")
    return img

URL-адрес изображения: «http://cloudimages.youthconnect.in/wp-content/uploads/2015/07/539.jpg»

Проблема в том, что я получаю следующую ошибку:

---------------------------------------------------------------------------
gaierror                                  Traceback (most recent call last)
/usr/lib/python3.6/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
   1324                 h.request(req.get_method(), req.selector, req.data, headers,
-> 1325                           encode_chunked=req.has_header('Transfer-encoding'))
   1326             except OSError as err: # timeout error

16 frames
gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

URLError                                  Traceback (most recent call last)
/usr/lib/python3.6/urllib/request.py in do_open(self, http_class, req, **http_conn_args)
   1325                           encode_chunked=req.has_header('Transfer-encoding'))
   1326             except OSError as err: # timeout error
-> 1327                 raise URLError(err)
   1328             r = h.getresponse()
   1329         except:

URLError: <urlopen error [Errno -2] Name or service not known>

Я не могу проверить, получил ли я код состояния 200 , потому что сайт недоступен. Когда я пытаюсь открыть соединение, тогда появляется эта ошибка.

Буду признателен, если кто-нибудь сможет дать какое-то решение этой проблемы. URL-адрес взят из набора данных VGGface, куда я пытаюсь загрузить изображения одно за другим.

1 Ответ

0 голосов
/ 01 августа 2020

Хорошо, я решил это с помощью простого оператора except:, так как мне не нужно знать тип исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...