- commit
- 2874541b74be30ed5d2a320bebad12d30053ccb3
- parent
- a163382b134b4f6596d83d76318a1706c6630bb0
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2025-12-07 14:57
automatically retry on ConnectionError very common issue
Diffstat
| M | handelsregister.py | 19 | +++++++++++++++++-- |
1 files changed, 17 insertions, 2 deletions
diff --git a/handelsregister.py b/handelsregister.py
@@ -1,5 +1,6 @@ 1 1 import argparse 2 2 import re -1 3 import time 3 4 4 5 import requests 5 6 from bs4 import BeautifulSoup @@ -27,6 +28,20 @@ def parse_id(s): 27 28 raise ValueError(s) 28 29 29 30 -1 31 class Session(requests.Session): -1 32 def request(self, *args, **kwargs): -1 33 retries = 2 -1 34 while True: -1 35 try: -1 36 return super().request(*args, **kwargs) -1 37 except requests.exceptions.ConnectionError: -1 38 if retries > 0: -1 39 retries -= 1 -1 40 time.sleep(1) -1 41 else: -1 42 raise -1 43 -1 44 30 45 def fetch_view_state(session): 31 46 r = session.get('https://www.handelsregister.de/rp_web/erweitertesuche/welcome.xhtml') 32 47 r.raise_for_status() @@ -52,7 +67,7 @@ def _search(session, data): 52 67 53 68 54 69 def search(terms, register=''):55 -1 with requests.Session() as session:-1 70 with Session() as session: 56 71 soup = _search(session, { 57 72 'form:schlagwoerter': terms, 58 73 'form:aenlichLautendeSchlagwoerterBoolChkbox_input': 'on', @@ -67,7 +82,7 @@ def search(terms, register=''): 67 82 68 83 69 84 def get_xml(register, id):70 -1 with requests.Session() as session:-1 85 with Session() as session: 71 86 soup = _search(session, { 72 87 'form:registerNummer': id, 73 88 'form:registerArt_input': register,