URL-Parameter der neuen Fahrplanauskunft? (Allgemeines Forum)

jorges, Donnerstag, 14.12.2023, 18:09 (vor 845 Tagen)

Bisher konnte man die alte Reiseauskunft so aufrufen:

reiseauskunft.bahn.de/bin/query.exe/d?S=Berlin%21&Z=Hamburg...

Die neue Auskunft dagegen braucht offenbar soid und zoid, um Verbindungen anzuzeigen

https://www.bahn.de/buchung/fahrplan/suche#sts=true
so=BERLIN
zo=HAMBURG
kl=2
r=13:16:KLASSENLOS:1
soid=A%3D1%40O%3DBERLIN%40X%3D13386988%40Y%3D52520501%40U%3D81%40L%3D8096003%40B%3D1%40p%3D1702322185%40
zoid=A%3D1%40O%3DHAMBURG%40X%3D9997434%40Y%3D53557110%40U%3D81%40L%3D8096009%40B%3D1%40p%3D1702322185%40
sot=ST
zot=ST
soei=8096003
zoei=8096009
hd=2023-12-14T16:12:55
hza=D
ar=false
s=true
d=false
hz=%5B%5D
fm=false
bp=false

– wenn man die aus der URL weglässt, kommt eine Fehlermeldung.

Das ist schade, denn offenbar kann man nun nicht mehr einen Link zu einer Verbindungssuche selbst bauen, so wie das noch bei der alten Reiseauskunft ging (PDF).

Oder hat jemand von Euch doch ein Idee, wie man nur den Bahnhofsnamen mitgeben kann und gleich ein Ergebnis erhält?

Ich würde nämlich gern weiterhin Verbindungssuchen vom Suchtool Trovu aus ermöglichen.

URL-Parameter der neuen Fahrplanauskunft?

sflori, Donnerstag, 14.12.2023, 19:35 (vor 845 Tagen) @ jorges
bearbeitet von sflori, Donnerstag, 14.12.2023, 19:36

Oder hat jemand von Euch doch ein Idee, wie man nur den Bahnhofsnamen mitgeben kann und gleich ein Ergebnis erhält?

Das dürfte nicht funktionieren.

soid und zoid müssen URLdecoded werden, z.B. hiermit:
https://www.urldecoder.org/

Beispiel für soid (=Startpunkt):
A%3D1%40O%3DBERLIN%40X%3D13386988%40Y%3D52520501 %40U%3D81%40L%3D8096003%40B%3D1%40p%3D1702322185%40

decodiert:
A=1@O=BERLIN@X=13386988@Y=52520501@U=81@L=8096003@B=1@p=1702322185@

Parameter "L" ist die IBNR (Bahnhofsnummer).

IBNR siehe hier:
https://de.wikipedia.org/wiki/Interne_Bahnhofsnummer

Die IBNR ist auch das einzig relevante. Wenn Du also alles auf "Berlin" lässt, aber die IBNR von Hamburg im Parameter L von soid einträgst, wird eine Verbindung ab Hamburg angezeigt, obwohl Berlin obendrüber steht.

Also wäre folgendes zu tun:

  • Liste mit IBNR organisieren oder API, die IBNR für Bahnhofsnamen zurückgibt.
  • IBNR für Abfahrtsbahnhof und IBNR für Ziel ermitteln
  • Encodieren als soid und zoid
  • Aufruf an bahn.de codieren


Bye. Flo.

IBNR API

sflori, Donnerstag, 14.12.2023, 20:27 (vor 845 Tagen) @ sflori
bearbeitet von sflori, Donnerstag, 14.12.2023, 20:32

API, die IBNR für Bahnhofsnamen zurückgibt.

Ich quote mich mal selbst und verweise auf die folgende API der Bahn:

Beispiel: Budenheim
https://www.bahn.de/web/api/reiseloesung/orte?suchbegriff=Budenheim&typ=ALL&lim...

Die gibt dann gleich alles zurück, was man als soid/zoid für die Fahrplanauskunft braucht.

Funktioniert auch in die Gegenrichtung, also Bahnhof zu IBNR finden:

Beispiel: 8001237
https://www.bahn.de/web/api/reiseloesung/orte?suchbegriff=8001237&typ=ALL&limit=10


Bye. Flo.

IBNR API

jorges, Donnerstag, 14.12.2023, 21:11 (vor 845 Tagen) @ sflori
bearbeitet von jorges, Donnerstag, 14.12.2023, 21:12

Vielen Dank für Deine Erläuterungen und Deinen Lösungsansatz!

Leider kann meine bestehende Infrastruktur bislang nicht einen vorherigen API-Call machen, das würde auch etwas den Rahmen der aktuellen Umsetzung sprengen. (Das Suchtool kann bislang eben nur Platzhalter in der URL befüllen und zu dieser dann umleiten.)

Aber vielleicht finde ich ja noch etwas in den bestehenden APIs. Du hast ja diesen Link angegeben:
https://www.bahn.de/web/api/reiseloesung/orte?suchbegriff=Budenheim&typ=ALL&lim...

Woher hattest Du den diesen API-Link? Wenn ich danach google, finde ich keine Ergebnisse. Vllt. finde ich ja noch etwas hilfreiches in den anderen APIs.

(Und sonst wundert mich auch, dass die DB offenbar wirklich die Möglichkeit abschaffen will, per einfacher Form ein Anreise-Widget auf die eigene Homepage zu setzen. Das dort verlinkte http://bahn.de/anreise führt nämlich zu einer 404.)

IBNR API

sflori, Freitag, 15.12.2023, 01:07 (vor 845 Tagen) @ jorges
bearbeitet von sflori, Freitag, 15.12.2023, 01:08

Leider kann meine bestehende Infrastruktur bislang nicht einen vorherigen API-Call machen, das würde auch etwas den Rahmen der aktuellen Umsetzung sprengen.

Da fällt mir grad auch nichts besseres ein. Du könntest noch JavaScript ausliefern, das die beiden Calls macht... Im Prinzip ists ja auch richtig, dass eine Fahrplanauskunft einen eindeutigen Start- und Endpunkt via IBNR bekommt.

Woher hattest Du den diesen API-Link?

Nachdem ich bei den offiziellen APIs nichts gefunden habe, hab ich geschaut, welche Requests die Webseite bahn.de macht. :)

(Und sonst wundert mich auch, dass die DB offenbar wirklich die Möglichkeit abschaffen will,

Ich glaube eher, dass die DB es einfach noch nicht geschafft hat, so ein Frontend auch für das neue System wieder bereitzustellen.


Bye. Flo.

IBNR API

jorges, Sonntag, 28.01.2024, 16:00 (vor 801 Tagen) @ sflori

Durch einen Hinweis von jemand anderem habe ich jetzt doch einen Weg gefunden:

https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DHamburg

Leider klappt das aber offenbar nicht für alle Bahnhöfe, zB

https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DBraunschweig
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DPotsdam
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DErfurt

Mit diesen aber geht es:
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DHamburg
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DKöln


Auch interessant ist, dass die von früher bekannte Eingabe mit Autokennzeichen klappt:
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3Dbs

Daher nehme ich an, dass "Braunschweig" evtl. nicht "eindeutig" genug ist (das Autokennzeichen aber schon). Aber "Hamburg" und "Köln" gehen, da die Auskunft sie auch als "HAMBURG" und "KÖLN" führt.

Man müsste also einen Weg finden, diese Eindeutigkeit herzustellen. Früher ging das ja mit Anhängen eines Ausrufezeichens. Leider nicht hier:

https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DPotsdam!
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DPotsdam%21

Vielleicht kennst Du noch einen Weg, wie man die Eingabe für solche Stationen ermöglichen kann.

IBNR API

JeDi, überall und nirgendwo, Sonntag, 28.01.2024, 16:30 (vor 801 Tagen) @ jorges

Leider klappt das aber offenbar nicht für alle Bahnhöfe, zB

https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DBraunschweig
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DPotsdam
https://www.bahn.de/buchung/fahrplan/suche#soid=O%3DBerlin&zoid=O%3DErfurt

Das liegt daran, dass weder "Braunschweig", noch "Potsdam", noch "Erfurt" Bahnhöfe sind. Berlin freilich auch nicht, da gibts aber ja den "Sammelsuchpunkt", der "Berlin" heißt. Mit "Potsdam-Babelsberg" und "Braunschweig-Gliesmarode" funktionierts aber freilich.

--
Weg mit dem 4744!

IBNR API

sflori, Sonntag, 28.01.2024, 16:39 (vor 801 Tagen) @ jorges
bearbeitet von sflori, Sonntag, 28.01.2024, 16:41

IBNR API

jorges, Sonntag, 28.01.2024, 17:03 (vor 800 Tagen) @ sflori

Genau. Aber meine Aufgabe ist damit noch nicht gelöst – ich möchte die neue URL eben in mein Suchtool Trovu integrieren.

Das heißt, ich möchte eine URL definieren nach den Muster:

https://www.bahn.de/buchung/fahrplan/suche#soid=O%3D<Start>&zoid=O%3D<Ziel>

und den Nutzern ermöglichen, nicht unbedingt "Erfurt Hbf", sondern auch nur "Erfurt" einzugeben.

"ef" als Autokennzeichen klappt ja erfreulicherweise schon, also gehe ich davon aus, dass diese Eingabe intern von bahn.de irgendwie verarbeitet wird.

Daher kam ja auch meine Annahme, dass das Ausrufezeichen helfen könnte – was es aber leider nicht tut.

Wenn Euch dazu was einfällt, würde ich mir das sehr helfen. Gab es neben dem Ausrufezeichen noch andere "Tricks" in der alten Reiseauskunft?

RSS-Feed dieser Diskussion
powered by my little forum