- commit
- 9c3fee484dad0c2d14ed0aa6f6ed0eb1eecec514
- parent
- 878ca10c1a808b69a4247073a4b4419f1b51e38e
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2025-12-07 21:21
refactor: deduplicate base URL
Diffstat
| M | handelsregister.py | 43 | +++++++++++++++++++------------------------ |
1 files changed, 19 insertions, 24 deletions
diff --git a/handelsregister.py b/handelsregister.py
@@ -70,11 +70,12 @@ def parse_item(item, ctx): 70 70 71 71 72 72 class Session(requests.Session):73 -1 def request(self, *args, **kwargs):-1 73 def request(self, method, path, **kwargs): -1 74 url = f'https://www.handelsregister.de{path}' 74 75 retries = 2 75 76 while True: 76 77 try:77 -1 r = super().request(*args, **kwargs)-1 78 r = super().request(method, url, **kwargs) 78 79 r.raise_for_status() 79 80 return r 80 81 except requests.exceptions.ConnectionError: @@ -86,7 +87,7 @@ class Session(requests.Session): 86 87 87 88 88 89 def get_context(session):89 -1 r = session.get('https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml')-1 90 r = session.get('/rp_web/erweitertesuche/welcome.xhtml') 90 91 soup = BeautifulSoup(r.content, 'html.parser') 91 92 92 93 return { @@ -111,18 +112,15 @@ def get_context(session): 111 112 112 113 def _search(session, query): 113 114 ctx = get_context(session)114 -1 r = session.post(115 -1 'https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml',116 -1 data={117 -1 'form': 'form',118 -1 'form:btnSuche': '',119 -1 'javax.faces.ViewState': ctx['view_state'],120 -1 'form:schlagwortOptionen': 1,121 -1 'form:aenlichLautendeSchlagwoerterBoolChkbox_input': 'on',122 -1 'form:ergebnisseProSeite_input': 100,123 -1 **query,124 -1 },125 -1 )-1 115 r = session.post('/rp_web/erweitertesuche/welcome.xhtml', data={ -1 116 'form': 'form', -1 117 'form:btnSuche': '', -1 118 'javax.faces.ViewState': ctx['view_state'], -1 119 'form:schlagwortOptionen': 1, -1 120 'form:aenlichLautendeSchlagwoerterBoolChkbox_input': 'on', -1 121 'form:ergebnisseProSeite_input': 100, -1 122 **query, -1 123 }) 126 124 soup = BeautifulSoup(r.content, features='html.parser') 127 125 return { 128 126 'action': soup.select_one('[action]')['action'], @@ -156,15 +154,12 @@ def get_xml(register, id, court): 156 154 }) 157 155 field = data['items'][0]['si_field'] 158 156159 -1 r = session.post(160 -1 f'https://www.handelsregister.de{data["action"]}',161 -1 data={162 -1 'ergebnissForm': 'ergebnissForm',163 -1 'javax.faces.ViewState': data['view_state'],164 -1 'property': 'Global.Dokumentart.SI',165 -1 field: field,166 -1 },167 -1 )-1 157 r = session.post(data['action'], data={ -1 158 'ergebnissForm': 'ergebnissForm', -1 159 'javax.faces.ViewState': data['view_state'], -1 160 'property': 'Global.Dokumentart.SI', -1 161 field: field, -1 162 }) 168 163 return r.text 169 164 170 165