aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/collateral/baml_isda.py15
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):