Seite 1 von 1

Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Dienstag 3. Januar 2017, 16:30
von barisoezcan
Hallo Leute =)
Ich weiss nicht, ob ich mit dem Betreff mein Anliegen einigermaßen gut formulieren konnte.

Ich möchte ein Python-Programm schreiben, welches die Suche aus einer Webseite einer Fluggesellschaft (z.B. Ryanair) verwendet und mir als Ergebnis die einzelnen Flüge mit den jeweiligen Preisen und möglichen Destinationen anzeigt.

Hintergrund ist der, dass ich eine personalisierte Suche programmieren möchte, wo ich z.B. meine gewünschte Zeitspanne (z.B. meine Urlaubstage) und einige Abflug-Flughäfen, die in der Nähe von mir liegen, eingebe, und mir das Programm dann zu diesen Daten jeweils passende Flüge (mit Preis, Destination und Uhrzeit) ausgibt. Es ist nämlich ein großer Aufwand, manuell immer einzelne Abflug-Flughäfen mit Zeitspannen einzugeben und zu durchsuchen.

Dafür müsste ich ja irgendwie die Suchmaske von z.B. Ryanair in meinem Python-Code verwenden können. Jedoch weiss ich nicht, wie und ob sich das realisieren lässt.

MfG

Re: Verwendung einer Suchmaske aus der Webseite einer Fluggesellschaft

Verfasst: Dienstag 3. Januar 2017, 16:36
von BlackJack
@barisoezcan: Das kommt so ein bisschen darauf an wie die jeweilige Webseite das löst und ob und wie sehr sie sich gegen automatisiertes Abfragen ”wehrt”. So eine wirklich ganz allgemeine Lösung wäre die Automatisierung eines Browsers mit entsprechenden (Test)Werkzeugen.

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Dienstag 3. Januar 2017, 16:39
von barisoezcan
Kannst du mir da irgendwas empfehlen, bzw. einen konkreten Ratschlag geben?
Ich wollte das z.B. erstmal für den konkreten Fall der "https://www.ryanair.com/de/de/"-Webseite implementieren.

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Donnerstag 5. Januar 2017, 16:16
von barisoezcan
Kann mir keiner einen konkreten Vorschlag geben? =)

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Donnerstag 5. Januar 2017, 16:29
von BlackJack
@barisoezcan: Was ist denn die konkrete Frage? Du müsstest halt entweder so etwas wie `requests` und `lxml.html` (eventuell mit BeautifulSoup4 als ”Frontend”) verwenden und ”nachmachen” was beim Browser passiert wenn man sucht, oder so etwas wie Selenium um einen Browser fernzusteuern.

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Donnerstag 5. Januar 2017, 16:54
von Kebap
Es gibt bereits gute Meta-Suchmaschinen, die gleichzeitig mehrere Fluglinien abfragen und auch Flughäfen der Umgebung mit berücksichtigen können. Willst du wirklich das Rad erneut erfinden, oder einfach nur einmal benutzen? Der Aufwand scheint vergleichsweise groß bei relativ geringem Ergebnis. Wenn es dir natürlich nur um eine Übung zur Programmierung geht, ok. Hier ist aber unklar, wie weit dein aktueller Wissensstand ist, ob du in der Lage bist mit den genannten Bibliotheken schon mal ein lauffähiges Beispiel zu produzieren und hier vorzustellen, an dem man dann Kritik üben kann. Ggf. nicht einmal, weil dein Code nicht funktioniert, sondern um besser zu programmieren.

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Freitag 6. Januar 2017, 09:50
von pixewakb
Wenn ich das richtig sehe, dann ist da viel JavaScript mit dabei, was bei mir i. d. R. eine momentan noch nicht zu überwindende Hürde darstellt. Zum Glück habe ich damit wenig zu tun. Der Button "Los geht's" scheint eine Javascript-Funktion "searchFlights()" auszulösen, die ich noch nicht gefunden habe. Im Kern müsstest Du herausfinden, was diese Funktion macht bzw. was die Funktion weitergibt und versuchen das nachzubauen.

Ich habe noch nicht gesehen, dass ich mit requests JS beeinflussen kann und wäre hier durchaus für Infos auch dankbar.

http://docs.python-requests.org/en/master/
https://www.crummy.com/software/BeautifulSoup/bs4/doc/

Grundsätzlich könnte ich damit früher oder später auch mal konfrontiert werden.

PS http://www.marinamele.com/selenium-tuto ... and-python -- habe ich gerade mal gefunden und lese ich.

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Freitag 6. Januar 2017, 10:37
von Sirius3
RyanAir bietet ja eine schöne REST-Schnittstelle an, bei der man nur Abflugsflughafen, Zielflughafen, Hin- und Rückreisedatum, Anzahl der Flex-Tage und Anzahl der Reisenden angeben muß:

Code: Alles auswählen

import requests
from pprint import pprint
   
URL = 'https://desktopapps.ryanair.com/de-de/availability'

params = {
    "RoundTrip": "true",
    "Origin": "STR",
    "Destination": "MAN",
    "DateOut": "2017-01-18",
    "DateIn": "2017-01-26",
    "FlexDaysOut": 2,
    "FlexDaysIn": 6,
    "ADT": 1,
    "TEEN": 0,
    "CHD": 0,
    "INF": 0,
    "exists": "false",
}

pprint(requests.get(URL, params=params).json())

Re: Verwendung der Suchfunktion aus der Webseite einer Fluggesellschaft

Verfasst: Freitag 6. Januar 2017, 11:27
von barisoezcan
Vielen Dank für die zahlreichen Antworten!
Ich werde mich in den nächsten Tagen mit den genannten Tipps mal auseinandersetzen und ggf. den Zwischenstand hier posten.

(PS: Es geht mir nicht wirklich darum, "das Rad neu zu erfinden", sondern um eine weitaus personalisiertere Flugsuche zu programmieren. Bei den bisherigen Suchen von den verschiedenen Anbietern habe ich nicht soo eine große Freiheit, wie ich es gerne hätte.
Als zusätzliches Nebenprodukt ist es natürlich auch eine gute Übung finde ich.)