Загрузка изображения - PullRequest
       7

Загрузка изображения

2 голосов
/ 22 февраля 2010

Я использовал urllib2.build_opener () для загрузки изображения с соответствующего URL. Но для определенного URL я получаю сообщение об ошибке. Когда я проверил этот URL, я увидел, что нет изображения. Как я могу проверить, есть изображение или нет? Это мой код:

opener1 = urllib2.build_opener()
page1=opener1.open(orginal)
my_picture=page1.read()

Я получил ошибку

  File "suitcase.py", line 120, in <module>
    get_suitcase()
  File "suitcase.py", line 96, in get_suitcase
    page1=opener1.open(orginal)
  File "D:\Program Files\Python\lib\urllib2.py", line 395, in open
    response = meth(req, response)
  File "D:\Program Files\Python\lib\urllib2.py", line 508, in http_response
    'http', request, response, code, msg, hdrs)
  File "D:\Program Files\Python\lib\urllib2.py", line 433, in error
    return self._call_chain(*args)
  File "D:\Program Files\Python\lib\urllib2.py", line 367, in _call_chain
    result = func(*args)
  File "D:\Program Files\Python\lib\urllib2.py", line 516, in http_error_default

    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found

Как проверить наличие изображения и продолжить его сохранение?

Ответы [ 4 ]

1 голос
/ 22 февраля 2010

, как другие предложили перехватить исключение и проверить код, например,

import urllib2

opener1 = urllib2.build_opener()
try:
    page1=opener1.open("http://www.google.com/nosuchimage")
    my_picture=page1.read()
except urllib2.HTTPError,e:
    if e.code == 404:
        print "no such image"
    else:
        print "error",e
except urllib2.URLError,e:
    print "URLError",e
1 голос
/ 22 февраля 2010

Я не понимаю. Почему бы просто не отловить ошибку с помощью ключевых слов try и кроме?

0 голосов
/ 22 февраля 2010
try:
    page1=opener1.open(orginal)
except HTTPError, e:
    if e.code == 404: # Only one of the many possible errors...
        print "Resource does not exist"
    raise

my_picture=page1.read() 

см. Также urllib2 - отсутствующее руководство

0 голосов
/ 22 февраля 2010

Проверяя атрибут code исключения .

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