diff --git a/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py b/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py index 4e2f59f3..c2ac1978 100755 --- a/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py +++ b/custom_components/waste_collection_schedule/waste_collection_schedule/wizard/muellmax_de.py @@ -12,6 +12,10 @@ package_dir = Path(__file__).resolve().parents[2] site.addsitedir(str(package_dir)) from waste_collection_schedule.service.MuellmaxDe import SERVICE_MAP # type: ignore # isort:skip # noqa: E402 +HEADERS = { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" +} + # Parser for HTML input (hidden) text class InputTextParser(HTMLParser): @@ -115,12 +119,12 @@ def main(): mm_ses = InputTextParser(type="hidden", name="mm_ses") url = f"https://www.muellmax.de/abfallkalender/{answers['service'].lower()}/res/{answers['service']}Start.php" - r = requests.get(url) + r = requests.get(url, headers=HEADERS) mm_ses.feed(r.text) # select "Abfuhrtermine", returns ort or an empty street search field args = {"mm_ses": mm_ses.value, "mm_aus_ort.x": 0, "mm_aus_ort.x": 0} - r = requests.post(url, data=args) + r = requests.post(url, data=args, headers=HEADERS) mm_ses.feed(r.text) # check if last request returns a list of cities @@ -143,7 +147,7 @@ def main(): "mm_frm_ort_sel": answers["mm_frm_ort_sel"], "mm_aus_ort_submit": "weiter", } - r = requests.post(url, data=args) + r = requests.post(url, data=args, headers=HEADERS) mm_ses.feed(r.text) # get list of streets @@ -153,11 +157,12 @@ def main(): "mm_frm_str_name": "", "mm_aus_str_txt_submit": "suchen", } - r = requests.post(url, data=args) + r = requests.post(url, data=args, headers=HEADERS) mm_ses.feed(r.text) mm_frm_str_sel = InputSelectParser(name="mm_frm_str_sel") mm_frm_str_sel.feed(r.text) + print(mm_frm_str_sel.choices) # select street questions = [ @@ -175,7 +180,7 @@ def main(): "mm_frm_str_sel": answers["mm_frm_str_sel"], "mm_aus_str_sel_submit": "weiter", } - r = requests.post(url, data=args) + r = requests.post(url, data=args, headers=HEADERS) mm_ses.feed(r.text) mm_frm_hnr_sel = InputSelectParser(name="mm_frm_hnr_sel")