diff options
author | Olga Khlopkova <o.khlopkova@corp.mail.ru> | 2021-01-13 14:12:14 +0300 |
---|---|---|
committer | Maksim Andrianov <maksimandrianov1@gmail.com> | 2021-01-15 17:26:47 +0300 |
commit | ea7df99cdd602f6808788b5b0ecd5404581c1f3e (patch) | |
tree | 46f0ec66af5ccbf21bdd87141b3c839ab1fe68d6 | |
parent | e20bdee2d1fa63fd079ce8bde837c9dec3c72c39 (diff) |
[transit] Handle exceptions in parse_openmobilitydata_pages().
-rw-r--r-- | tools/python/transit/gtfs/download_gtfs.py | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/tools/python/transit/gtfs/download_gtfs.py b/tools/python/transit/gtfs/download_gtfs.py index e1d1219932..2c6b3eb2b4 100644 --- a/tools/python/transit/gtfs/download_gtfs.py +++ b/tools/python/transit/gtfs/download_gtfs.py @@ -133,32 +133,38 @@ def parse_openmobilitydata_pages(omd_api_key): "type": "gtfs" } - with requests.get(url_page, params=params, headers=HEADERS_OMD) as response: - if response.status_code != 200: - logger.error(f"Http code {response.status_code} loading feed ids: {url_page}") - return [], "" - - data = json.loads(response.text) - - if page == 1: - pages_count = data["results"]["numPages"] - logger.info(f"There are {pages_count} Openmobilitydata pages with feed urls.") - - for feed in data["results"]["feeds"]: - params = { - "key": omd_api_key, - "feed": feed["id"] - } - - with requests.get(url_with_redirect, params=params, headers=HEADERS_OMD, allow_redirects=True) \ - as response_redirect: - if response_redirect.history: - urls.append(response_redirect.url) - else: - logger.error(f"Could not get link to zip with feed {feed['id']} from {url_with_redirect}") + try: + with requests.get(url_page, params=params, headers=HEADERS_OMD) as response: + if response.status_code != 200: + logger.error(f"Http code {response.status_code} loading feed ids: {url_page}") + return [], "" + + data = json.loads(response.text) + + if page == 1: + pages_count = data["results"]["numPages"] + logger.info(f"There are {pages_count} Openmobilitydata pages with feed urls.") + + for feed in data["results"]["feeds"]: + params = { + "key": omd_api_key, + "feed": feed["id"] + } + try: + with requests.get(url_with_redirect, params=params, headers=HEADERS_OMD, allow_redirects=True) \ + as response_redirect: + if response_redirect.history: + urls.append(response_redirect.url) + else: + logger.error(f"Could not get link to zip with feed {feed['id']} from {url_with_redirect}") + except requests.exceptions.RequestException as ex_redirect: + logger.error(f"Exception {ex_redirect} while getting link to zip with " + f"feed {feed['id']} from {url_with_redirect}") + except requests.exceptions.RequestException as ex: + logger.error(f"Exception {ex} while getting {url_page} (page {page}) from Openmobilitydata.") - logger.info(f"page {page}") - page += 1 + logger.info(f"Crawled {page}/{pages_count} page of Openmobilitydata.") + page += 1 return urls |