bahnpreise mittels python ermitteln

Gast #7074833
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
Gast #7075748
Εrnst B. schrieb:
> Lars schrieb:
>> was ist daran falsch?
>
> in Python ist die Code-Formatierung wichtig. Du hast eine falsche Anzahl
> an Leerzeichen am Zeilenanfang.

Sollte man nicht, wenn man eine Programiersprache benutzt. zumindest ein 
paar Basics dieser Sprache kennen?
Und das Einrücken steht doch schon im ersten Abschnitt in der Wikipedia:

https://de.wikipedia.org/wiki/Python_(Programmiersprache)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.