diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/collateral/baml_isda.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/python/collateral/baml_isda.py b/python/collateral/baml_isda.py index 30f16f1e..4acb8581 100644 --- a/python/collateral/baml_isda.py +++ b/python/collateral/baml_isda.py @@ -1,12 +1,15 @@ from . import DAILY_DIR from bs4 import BeautifulSoup from io import BytesIO +import logging import pandas as pd import pathlib from urllib.parse import urlsplit, parse_qs, urlunsplit, urljoin import requests import zipfile +logger = logging.getLogger(__name__) + def download_from_secure_id( secure_id: str, @@ -26,6 +29,8 @@ def download_from_secure_id( ) soup = BeautifulSoup(r.content, features="lxml") form = soup.find(id="dialog") + if "messagenotfound" in form["action"]: + raise ValueError("message not found") for inp in form.find_all("input"): payload[inp["name"]] = inp["value"] payload["dialog:password"] = password[payload["dialog:username"]] @@ -60,9 +65,13 @@ def download_files(d=None, count=20): url = urlsplit(a["href"]) query = parse_qs(url.query) base_url = urlunsplit(url[:2] + ("",) * 3) - download_from_secure_id( - query["id"][0], query["brand"][0], DATA_DIR, base_url - ) + try: + download_from_secure_id( + query["id"][0], query["brand"][0], DATA_DIR, base_url + ) + except ValueError as e: + logger.error(e) + continue def collateral(d, dawn_trades, *args): |
