import os
import re
import time
+from urllib.parse import urljoin
import requests
from bs4 import BeautifulSoup
})
# load login page
-main_url = 'https://rechnung.bob.at/'
-response = session.get(main_url)
+response = session.get('https://rechnung.bob.at/')
html = BeautifulSoup(response.text, 'html.parser')
# fill out login form (name='asmpform') with username=<phone number> and password
# https://rechnung.bob.at/bill/pdf/;BOBOBPSESSIONID=B7DB9938A3B9541E3D0EB6CD728F54C0.obpBobCustomer4Rechnungskopie_1509_523260091_1.pdf?bsn=61
# same after reload:
# '/bill/pdf/Rechnungskopie_1509_523260091_1.pdf?bsn=61'
-response = session.get(main_url)
+response = session.get(response.url)
html = BeautifulSoup(response.text, 'html.parser')
# Download PDFs
assert filename.startswith('Rechnungskopie_')
filepath = os.path.join(dest_dir, filename)
if not os.path.exists(filepath):
- response = session.get(main_url[:-1] + url)
+ response = session.get(urljoin(response.url, url))
assert response.status_code == 200
with open(filepath, 'wb') as file:
file.write(response.content)
links = html.findAll('a', href=regexp)
for link in links:
url = link['href']
- response = session.get(main_url[:-1] + url)
+ response = session.get(urljoin(response.url, url))
assert response.status_code == 200
assert 'OBP.utils.reloadAfterDelay("/bill.ctn.cdr.set.obp",5);' in response.text
time.sleep(5) # OBP.utils.reloadAfterDelay("/bill.ctn.cdr.set.obp",5);
- response = session.get(main_url + 'bill.ctn.cdr.set.obp')
+ response = session.get(urljoin(response.url, 'bill.ctn.cdr.set.obp'))
assert 'OBP.utils.reloadAfterDelay("/bill.ctn.cdr.set.obp",5);' not in response.text
html = BeautifulSoup(response.text, 'html.parser')
assert html.find('a', id='link_csv_download') is not None