Hallo Zusammen,
ich bin gerade dabei Python ein Suchprogramm zum Durchsuchen von einer bestimmten externen Website zu schreiben. Und zwar soll der Suchbegriff um es optisch etwas aufzuhübschen in einer HTML-Seite eingeben werden. Durch betätigen des "Suchen"-Buttons wird der Suchbegriff dann Python übergeben. Die externe Website hat wiederum eine Suchfunktion. In diese Suchfunktion der externen Website soll Python meinen Suchbegriff reinschreiben. Die externe Website liefert dann ein Suchergebnis, die vorher definierten Parameter soll dann Python lesen und auf meiner Website strukturiert ausgeben. Ausgabe In JSON/XML , weil ich Java oder AJAX nutzen möchte.
Hier hackt es aber gewaltig. Nichts funktioniert, nichts greift ineinander.
Bin für jeden Tipp sehr dankbar.
Vielen Dank im Voraus und eine schöne Weihnachtszeit.
Websites auslesen mit Python
@cthaus: Das ist ein wenig zu allgemein um da eine sinnvolle Antwort zu geben. Was ist das *konkrete* Problem. Was hast Du bereits, und wo kommst Du da nicht weiter?
Ansonsten kann man nur so allgemeine Dinge wie Bottle, Django, Flask, `requests`, und `lxml.html` in den Raum werfen.
Ansonsten kann man nur so allgemeine Dinge wie Bottle, Django, Flask, `requests`, und `lxml.html` in den Raum werfen.
Das was ich bereits hierzu hatte, scheint wohl nicht zu funktionieren.
Insofern habe ich meine Frage, so abstrakt wie möglich, hier im Forum publiziert um niemandem mit meinem Code bzw. Logikansatz zu verwirren.
Eigentlich wollte ich mit euerer Hilfe und euren Ansätzen komplett neu auf der grünen Wiese starten,...vllt kann es ja jemand konkretisieren und kurz seine Logik aufschreiben.
Nochmals vielen Dank
Insofern habe ich meine Frage, so abstrakt wie möglich, hier im Forum publiziert um niemandem mit meinem Code bzw. Logikansatz zu verwirren.
Eigentlich wollte ich mit euerer Hilfe und euren Ansätzen komplett neu auf der grünen Wiese starten,...vllt kann es ja jemand konkretisieren und kurz seine Logik aufschreiben.
Nochmals vielen Dank
Da ich sehr in Zeitdruck bin (ist nämlich eine Projektarbeit im Studium und die Abgabe soll noch vor Weihnachten sein) und wie es aussieht ich es selbst nicht hinbekomme, bin ich auch bereit euren Aufwand zu entlohnen. Falls hier jemand Interesse hat bitte einfach email an ct at i-tps punkt de schreiben. Danke
@cthaus: Wenn es sich hier um Projektarbeit handelt, von welchem Weihnachten sprichst Du?
Wie schon gesagt wurde, die Angaben sind zu allgemein. Was für eine Suche? Was für ein Ausgabeformat? usw.
Am besten stellst Du hier vor, was Du probiert hast, dann können wir Dir auch sagen, wo es Verbesserungspotential gibt.
Wie schon gesagt wurde, die Angaben sind zu allgemein. Was für eine Suche? Was für ein Ausgabeformat? usw.
Am besten stellst Du hier vor, was Du probiert hast, dann können wir Dir auch sagen, wo es Verbesserungspotential gibt.
cthaus hat geschrieben:Eigentlich wollte ich mit euerer Hilfe und euren Ansätzen komplett neu auf der grünen Wiese starten,...vllt kann es ja jemand konkretisieren und kurz seine Logik aufschreiben.
- Ermittle einmalig, wie die fernzusteuernde fremde Seite Daten überträgt (GET/POST)
- Verwende ein (Micro-)Webframework
- Zeige mit Hilfe des Frameworks deine Suchseite an
- Reagiere auf die Suchanfrage deiner Seite und sende an die fremde Seite einen Request (siehe Punkt 1) der dort die Suche auslöst
- Lies das Resultat und parse es mit einer geeigneten Bibliothek (z.B. BeautifulSoup)
- Zeige die Daten auf deiner Seite an
@cthaus: Dein erster Schritt sollte sein, Suchanfragen an die Seite zu stellen und das Ergebnis zu parsen. Als Datenstruktur bietet sich da für den Anfang eine Liste mit Dictionaries an, die können dann auch einfach als JSON geschrieben werden.
Erst wenn das funktioniert, brauchst Du Dir Gedanken über eine Bereitstellung der Funktion in einem Webinterface machen.
Zum Absenden der Anfrage bietet sich das requests-Modul an, zum Parsen des Ergebnisses BeautifulSoup.
Erst wenn das funktioniert, brauchst Du Dir Gedanken über eine Bereitstellung der Funktion in einem Webinterface machen.
Zum Absenden der Anfrage bietet sich das requests-Modul an, zum Parsen des Ergebnisses BeautifulSoup.
-
- User
- Beiträge: 22
- Registriert: Dienstag 13. August 2019, 14:38
mal ne allgemeine Frage:
hab bisher 3 Seiten mit bs4 geparst, ziemlich problemlos. Nun hab ich aber 2 Seiten, die sich zwischen den Browser-Ansichten "Quellcode" und "Elemente untersuchen" gravierend unterscheiden. Im Quellcode sind kaum noch tags.. eher scripte hinterlegt. Wenn ich die Seiten mit request.session runterlade, kann ich damit natürlich wenig anfangen.
Kann mir einer sagen wie sowas kommt und gibt es Möglichkeiten diese Seiten trotzdem irgendwie zu parsen?
hab bisher 3 Seiten mit bs4 geparst, ziemlich problemlos. Nun hab ich aber 2 Seiten, die sich zwischen den Browser-Ansichten "Quellcode" und "Elemente untersuchen" gravierend unterscheiden. Im Quellcode sind kaum noch tags.. eher scripte hinterlegt. Wenn ich die Seiten mit request.session runterlade, kann ich damit natürlich wenig anfangen.
Kann mir einer sagen wie sowas kommt und gibt es Möglichkeiten diese Seiten trotzdem irgendwie zu parsen?
Du sagst es ja schon selbst: die definieren Skripte. Und die Skripte laden die Daten nach, und manipulieren die Seite. Es gibt zwei Wege drumrum:
- die Daten kommen immer von einem Server, du kannst versuchen, die Abfragen die dahinter stehen, selbst zu machen. Das wird ggf. aber sehr, sehr kompliziert, wenn da zB mit Nonces oder anderen Techniken gearbeitet wird.
- du benutzt einen Browser mit JS, zB via Selenium, um dein scraping zu treiben.
- die Daten kommen immer von einem Server, du kannst versuchen, die Abfragen die dahinter stehen, selbst zu machen. Das wird ggf. aber sehr, sehr kompliziert, wenn da zB mit Nonces oder anderen Techniken gearbeitet wird.
- du benutzt einen Browser mit JS, zB via Selenium, um dein scraping zu treiben.
-
- User
- Beiträge: 22
- Registriert: Dienstag 13. August 2019, 14:38
cool Danke Dir. Ja, dachte mir natürlich schon das die Scripte "die Seite bauen".. war mir aber nicht sicher. Dann les ich mich mal in Selenium ein.
-
- User
- Beiträge: 15
- Registriert: Samstag 2. November 2019, 07:04
schon mal scrapy versucht ?