Hi,
ich versuche mit python über requests die Preise zu ermitteln.
Die Vorlage habe ich von
https://nickyreinert.de/blog/2020/09/09/das-ticket-preis-system-der-deutschen-bahn-oder-wie-findest-du-den-optimalen-fahrschein-preis/
Da habe ich bei verschiedenen Vorgehen verschiedene Probleme:
1) Preise über reiseauskunft
1 | url = "http://reiseauskunft.bahn.de/bin/query.exe/dn"
|
2 | r = requests.get(url=urlReiseauskunft, params=payload)
|
3 | print('Status Code: ', r.status_code)
|
4 | print('URL: ', r.url)
|
5 | #print(r.content)
|
6 | #print(r.text)
|
7 | with open('bahn.html','w') as f:
|
8 | f.write(r.text)
|
wenn ich eines von
1 | print(r.content)
|
2 | print(r.text)
|
einkommentiere, bekomme ich den Fehler:
print(r.content)
^
IndentationError: unindent does not match any outer indentation level
was ist daran falsch?
der status_code ist 200 und die URL wird mir auch richtig ausgegeben.
Wenn ich bahn.html öffne, bekomme ich die richtige seite dargestellt und
die url führt mich auch zur richtigen seite.
Wie kann ihc mir den Text denn direkt in der konsole ausgeben?
Hintergrund ist, dass ich den Text parsen möchte, um an weitere
Parameter zu kommen.
2 Möglichkeit über den Sparpreisfinder.
Hier sollte es auch mittels JSON funktionieren
1 | data = '{"startSucheSofort":true,"startBhfName":"BERLIN","startBhfId":"00809603","startBhfLocType":"1","zielBhfName":"Stuttgart Hbf","zielBhfId":"008000096","zielBhfLocType":"1","schnelleVerbindungen":true,"klasse":"2","tripType":"return","datumHin":"' + start_date + '","sliderHinMin":"0000","sliderHinMax":"1440","datumRueck":"' + back_date + '","sliderRueckMin":"0000","sliderRueckMax":"1440","travellers":[{"typ":"E","bc":"0"}]}'
|
2 |
|
3 | url = 'https://ps.bahn.de/preissuche/preissuche/psc_start.post?country=DEU&lang=de&dbkanal_007=L01_S01_D001_KIN0001_qf-sparpreis-svb-kl2_lz03&ps=1&psc-anfragedata-json='+dat
|
4 |
|
5 | r = requests.get(url=url)
|
6 | print('Status Code: ', r.status_code)
|
7 | print('URL: ', r.url)
|
8 | with open('bahn.html','w') as f:
|
9 | f.write(r.text)
|
aber wie komme ich hier an die json datei?
Als URL wird mir immer
https://reiseauskunft.bahn.de/bin/query.exe/dn?tbpMode=1&date=%2B1&getstop=1
ausgegeben