I am making a html request using urllib2 method(inside a for loop) but sometimes i get errors or timeouts so i have to start all over the for loop. Could any one show me how i can modify my code so it keeps trying until we don't get error instead of restring the for loop all over again ?
    import urllib2,re
    proxy = "*.*.*.*:8080"
    proxies = {"http":"http://%s" % proxy}
    headers={'User-agent' : 'Mozilla/5.0'}
    //rest of code here
    for num,cname in enumerate(match):
        r = re.compile('epi/(.*?)/')
        m = r.search(cname[0])
        episodeId = m.group(1)
        url = "http://api.somesite.net/api/data/Episode/"+str(episodeId);
        proxy_support = urllib2.ProxyHandler(proxies)
        opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler(debuglevel=0))
        urllib2.install_opener(opener)
        req = urllib2.Request(url, None, headers)
   try:
      html = urllib2.urlopen(req).read()
   except urllib2.URLError, e:
      raise MyException("There was an error: %r" % e)
  @retry(urllib2.URLError, tries=4, delay=3, backoff=2)
def urlopen_with_retry():
        return urllib2.urlopen("http://example.com")
 
Aucun commentaire:
Enregistrer un commentaire