- commit
- 6bfb01f8b9efc2f62deef28f92d42ccb1e2f203e
- parent
- 1a7f663f0a80f5a50015a7c1cacbcde225c3fc0e
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2025-12-07 14:27
requests: use session as context manager
Diffstat
| M | handelsregister.py | 90 | ++++++++++++++++++++++++++++++------------------------------ |
1 files changed, 45 insertions, 45 deletions
diff --git a/handelsregister.py b/handelsregister.py
@@ -26,17 +26,18 @@ REGISTERS = {
26 26
27 27
28 28 def search(terms, register=''):
29 -1 r = requests.post(
30 -1 'https://www.handelsregister.de/rp_web/erweitertesuche.xhtml',
31 -1 data={
32 -1 **SEARCH_DEFAULTS,
33 -1 'form:registerArt_input': register,
34 -1 'form:schlagwoerter': terms,
35 -1 'form:schlagwortOptionen': 1,
36 -1 'form:aenlichLautendeSchlagwoerterBoolChkbox_input': 'on',
37 -1 }
38 -1 )
39 -1 r.raise_for_status()
-1 29 with requests.Session() as session:
-1 30 r = session.post(
-1 31 'https://www.handelsregister.de/rp_web/erweitertesuche.xhtml',
-1 32 data={
-1 33 **SEARCH_DEFAULTS,
-1 34 'form:registerArt_input': register,
-1 35 'form:schlagwoerter': terms,
-1 36 'form:schlagwortOptionen': 1,
-1 37 'form:aenlichLautendeSchlagwoerterBoolChkbox_input': 'on',
-1 38 }
-1 39 )
-1 40 r.raise_for_status()
40 41
41 42 soup = BeautifulSoup(r.content, features='html.parser')
42 43 for item in soup.select('[data-ri]'):
@@ -47,40 +48,39 @@ def search(terms, register=''):
47 48
48 49
49 50 def get_xml(register, id):
50 -1 s = requests.Session()
51 -1 r = s.post(
52 -1 'https://www.handelsregister.de/rp_web/erweitertesuche.xhtml',
53 -1 data={
54 -1 **SEARCH_DEFAULTS,
55 -1 'form:registerArt_input': register,
56 -1 'form:registerNummer': id,
57 -1 },
58 -1 )
59 -1 r.raise_for_status()
60 -1
61 -1 field = None
62 -1 for x in re.findall(r'PrimeFaces.addSubmitParam\([^)]*', r.text):
63 -1 if 'Global.Dokumentart.SI' in x:
64 -1 field = re.search(r"ergebnissForm:selectedSuchErgebnisFormTable:[^']*", x)[0]
65 -1 break
66 -1 if not field:
67 -1 raise ValueError
68 -1
69 -1 view_state = re.search(r'<update id="j_id1:javax.faces.ViewState:0"><!\[CDATA\[([-0-9]*:[-0-9]*)\]\]></update>', r.text)[1]
70 -1 action = re.search('action="([^"]*)"', r.text)[1]
71 -1
72 -1 r2 = s.post(
73 -1 f'https://www.handelsregister.de{action}',
74 -1 data={
75 -1 'ergebnissForm': 'ergebnissForm',
76 -1 'javax.faces.ViewState': view_state,
77 -1 'property': 'Global.Dokumentart.SI',
78 -1 field: field,
79 -1 },
80 -1 )
81 -1 r2.raise_for_status()
82 -1
83 -1 return r2.text
-1 51 with requests.Session() as session:
-1 52 r = session.post(
-1 53 'https://www.handelsregister.de/rp_web/erweitertesuche.xhtml',
-1 54 data={
-1 55 **SEARCH_DEFAULTS,
-1 56 'form:registerArt_input': register,
-1 57 'form:registerNummer': id,
-1 58 },
-1 59 )
-1 60 r.raise_for_status()
-1 61
-1 62 field = None
-1 63 for x in re.findall(r'PrimeFaces.addSubmitParam\([^)]*', r.text):
-1 64 if 'Global.Dokumentart.SI' in x:
-1 65 field = re.search(r"ergebnissForm:selectedSuchErgebnisFormTable:[^']*", x)[0]
-1 66 break
-1 67 if not field:
-1 68 raise ValueError
-1 69
-1 70 view_state = re.search(r'<update id="j_id1:javax.faces.ViewState:0"><!\[CDATA\[([-0-9]*:[-0-9]*)\]\]></update>', r.text)[1]
-1 71 action = re.search('action="([^"]*)"', r.text)[1]
-1 72
-1 73 r2 = session.post(
-1 74 f'https://www.handelsregister.de{action}',
-1 75 data={
-1 76 'ergebnissForm': 'ergebnissForm',
-1 77 'javax.faces.ViewState': view_state,
-1 78 'property': 'Global.Dokumentart.SI',
-1 79 field: field,
-1 80 },
-1 81 )
-1 82 r2.raise_for_status()
-1 83 return r2.text
84 84
85 85
86 86 def get_parser():