diff --git a/src/you_get/common.py b/src/you_get/common.py index 1e7fca5b..f56f85e3 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -342,14 +342,19 @@ def get_location(url): return response.geturl() def urlopen_with_retry(*args, **kwargs): - for i in range(2): + retry_time = 3 + for i in range(retry_time): try: return request.urlopen(*args, **kwargs) - except socket.timeout: + except socket.timeout as e: logging.debug('request attempt %s timeout' % str(i + 1)) + if i + 1 == retry_time: + raise e # try to tackle youku CDN fails except error.HTTPError as http_error: logging.debug('HTTP Error with code{}'.format(http_error.code)) + if i + 1 == retry_time: + raise http_error def get_content(url, headers={}, decoded=True): """Gets the content of a URL via sending a HTTP GET request.