Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 0
  0   
								
								Здравствуйте.
Сразу скажу, что мне нужно готовое решение или наглядный пример.
Суть вот в чём…
Есть у меня скрипт, который коннектится 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
Офлайн
 
							 0
  0   
								
								ну если уж быдлокодить, так мб так лучше? %)
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)
Офлайн
 
							 0
  0   
								
								Ohmygodable!!
Спасибо, ZioN! Щас башка ещё просветлеет и я это впишу в свой быдлокод )
Ещё раз, сенки! )
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)