Форум сайта python.su
0
Хочу изменить поведение метода open у объекта opener, чтобы он открывал страницу до тех пор, пока эта операция не произойдет успешно. Подскажите как правильно сделать.
Сейчас реализовано так:
import urllib2, time def open_link(link): global opener page = '' t = False while t == False: try: page = opener.open(link).read() t = True except Exception, e: print e time.sleep(5) return page opener = urllib2.build_opener() urllib2.install_opener(opener)
Отредактировано tibs (Март 31, 2013 11:46:25)
Офлайн
221
ну так у вас t = True происходит всегда, так как он находится в блоке finaly.
Наверное будет достаточно цикл проверять по if not page, да и обработку Exceptions правильно сделать, мало ли вдруг получите на вход не корректную ссылку и будет вам бесконечный цикл
Офлайн
> , чтобы он открывал страницу до тех пор, пока эта операция не произойдет успешно.
ну тогда сначала opener.open(link), а потом уже если всё ок, то делаем read()
Офлайн