Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2015 18:36:17

AnnaLischen
Зарегистрирован: 2015-04-28
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как лучше всего проверять http статус?

Я столкнулась с такой проблемой: работаю с большой базой данных, там в виде неких файлов раскиданы собственно данные, выглядит ссылка примерно так: www.databasesite.somedata.datekey.datakey2.file.datatype ключи надо генерировать, из там порядка нескольких тысяч. Естественно вручную это всё делать никто не будет. Написала код. Всё отлично. Но на одной ссылке упал. Проверила, перешла - 404. Естественно надо было добавить строчку, проверяющую статус и только потом открывать страницу. Сделала так:

code = urllib.urlopen("www.databasesite.somedata.datekey.datakey2.file.datatype").getcode()
if code < 404:
      data = urllib2.urlopen(www.databasesite.somedata.datekey.datakey2.file.datatype)
Но это как-то медленно работает, да и по виду топорно. Как можно сделать лучше? Ссылки у меня капризные, не все решения (я искала и пробовала) сработали, вылезали ошибки.

Офлайн

#2 Июнь 3, 2015 18:43:41

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Как лучше всего проверять http статус?

зачем вам два раза открывать?

import urllib2
data = urllib2.urlopen("http://www.python.su")
if data.getcode() < 404:
    print "ok", data.read()
else:
    print ":("



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Июнь 3, 2015 18:53:22)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version