Найти - Пользователи
Полная версия: Обертка для метода объекта
Начало » Python для новичков » Обертка для метода объекта
1
tibs
Хочу изменить поведение метода 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)
JOHN_16
ну так у вас t = True происходит всегда, так как он находится в блоке finaly.
Наверное будет достаточно цикл проверять по if not page, да и обработку Exceptions правильно сделать, мало ли вдруг получите на вход не корректную ссылку и будет вам бесконечный цикл
lorien
> , чтобы он открывал страницу до тех пор, пока эта операция не произойдет успешно.

ну тогда сначала opener.open(link), а потом уже если всё ок, то делаем read()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB