Форум сайта python.su
Здравствуйте.
Сразу скажу, что мне нужно готовое решение или наглядный пример.
Суть вот в чём…
Есть у меня скрипт, который коннектится urllib'ом к хосту, берет данные и обрабатывает их (парсит, в общем).
Но, из-за нестабильности коннекта и огромного числа запросов, иногда возникают ошибки (исключения).
обычную обработку я сделал, по принципу (это кусочек кода):
i = 0
while i < len(b):
time.sleep(5)
try:
req = ur.urlopen(b[i]).read()
except urllib.socket.error:
req = ur.urlopen(b[i]).read()
except IOError:
req = ur.urlopen(b[i]).read()
def urlim(biurl):
try:
rq = ur.urlopen(biurl).read()
except urllib.socket.error:
rq = ur.urlopen(biurl).read()
except IOError:
rq = ur.urlopen(biurl).read()
return rq
i = 0
while i < len(b):
time.sleep(5)
url = b[i]
print url
while True:
try:
req = ur.urlopen(url).read()
except urllib.socket.error:
req = urlim(url)
except IOError:
req = urlim(url)
else:
break
Офлайн
ну если уж быдлокодить, так мб так лучше? %)
for url in b:
while 1:
try:
req = ur.urlopen(url).read()
except (urllib.socket.error, IOError):
time.sleep(5)
continue
else:
break
go_parse_url(req, url)
Отредактировано (Сен. 14, 2009 19:06:34)
Офлайн
Ohmygodable!!
Спасибо, ZioN! Щас башка ещё просветлеет и я это впишу в свой быдлокод )
Ещё раз, сенки! )
Офлайн