Kennt sich hier jemand mit WebScraping aus?
Ich will alle Urls von dieser Seite bekommen, dafür muss man ein paar mal den ›Weitere Ergebnisse laden‹-Button unten drücken. Ich versuche es mit #Python (cfscraper/requests und #BeautifulSoup), aber ich bekomme die richtige POST-Anfrage nicht hin, um alle die Seite mit allen Ergebnissen zu haben.
Jemand Ideen?
Hier ist die Seite: https://www.neubaukompass.de/neubau-immobilien/berlin-region/
Udpate: Hab das Problem gelöst, hab die POST-Anfrage aus Firefox übernommen.
Wenn Du mir sagst, wie ich mit wget alle Ergebnisse auf der Seite laden kann, hätte ich nichts dagegen.
@user8e8f87c
Ein bisschen was kannst du auch tun. Wget ist sehr gut dokumentiert.
Warum sollte ich wget benutzen, wenn cfscraper und BeautifulSoup benutze? Mit wget komme ich doch noch nicht einmal an CloudFlare vorbei. Wenn mich die Dokumentation und Tutorials im Internet weitergebracht hätten, hätte ich hier übrigens nicht gefragt.
Ich frage, weil ich an der Stelle, wie im Ausgangspost erwähnt, nicht weiterkomme.
@user8e8f87c Man könnte die Filterfunktion nutzen um kleinere Ergebnislisten zu erzielen. Die Filterparameter kann man in der Url im Browser ablesen. Man könnte z.B. den Preis in viele Bereiche Unterteilen und über die dann iterieren. Etwas umständlich aber müsste funktionieren und man kann gleich ein paar Metadaten mitspeichern.
Eine Alternative wäre das package Selenium um den Browser programmatisch zu steuern, braucht aber etwas mehr Aufwand zur Installation.
Hoffe das hilft :)
Ah, keine schlechte Idee!
Du meinst, die POST-Anfrage für den Mehr-laden-Button bekommt man mit requests nicht irgendwie nachgebaut?
Auf Selenium wollte ich eigentlich verzichten, aber zur Not nehm ich auch das.
@user8e8f87c Kann sein, dass es geht, aber hab ich noch nie gemacht. Mit Selenium geht's bestimmt.
Du könntest die "Entwicklerwerkzeuge" in Firefox nutzen, um die anzuschauen, wie der Request genau ausieht.
@user8e8f87c @awakenting
Das hatte ich versucht, aber wohl die falschen headers. Ich versuche es noch mal.
Bekomme leider <Response 400>.
Ich hab ja nicht versprochen, dass es damit gleich geht
@user8e8f87c
@user8e8f87c schau dir mal Selenium an https://www.selenium.dev/documentation/
Ich hatte gehofft, es würde irgendwie ohne gehen. Aber ja, zur Not werde ich diesen Weg gehen.
Danke Dir!
@user8e8f87c
was willst du den machen?
Vielleicht hilft dir bardeen.ai