Thomas schrieb:
Dennis S. schrieb:
Aber vielleicht gibt es heute ja noch einen subtileren Weg ...
Mit Web-Scraping. Hab ich mal gemacht, mit Python und der BeautifulSoup
Library.
BeautifulSoup ist eine sehr leistungsfähige Library, allerdings vor allem auf die Manipulation des DOM spezialisiert. Für Web Scraping würde ich dagegen auf die darauf spezialisierte Library Scrapy empfehlen, die einem noch einen großen Haufen des "Drumherum" wie Connection Management, Authentifizierung, (Session-)Cookies, Parallelisierung und so weiter -- mit requests oder den Standard-urllibs muß man das ja alles manuell machen.
Anleitung gibt es hier:
https://www.geeksforgeeks.org/python-web-scraping-tutorial/
Bei "Geeks for Geeks" werde ich leider regelmäßig enttäuscht und würde anstelle dessen eher Real Python [2] empfehlen. Die haben auch etwas zu requests, BeautifulSoup und zu Scrapy.
Aber immer schön zwischen den Abfragen kurzes (wechselndes) Delay
einbauen.
Auch das kann Scrapy schon von Haus aus.
Funktioniert aber immmer nur eine Weile, sobald sich an der Seite etwas
ändert kann es sein, dass Du erneut anpassen musst.
Neben dieser Sache mit den Ressourcen auf beiden beteiligten Seiten -- der Server muß die Daten in ein HTML-Template einbauen, der Client muß sie dann wieder ausbauen, um wieder an die Rohdaten zu kommen, wie bescheuert -- ist diese Sache mit den Änderungen an einer Website einer der Hauptgründe dafür, warum erfahrene Entwickler sich als Erstes nach einer API umschauen. Denn die transportiert dann nur die Daten, das schont die Ressourcen des Servers und meine eigenen natürlich ebenfalls. :-)
Wir sind mittlerweile sogar dazu übergegangen, beim Anbieter nachzufragen und meine Unterstützung anzubieten, wenn es keine öffentliche API gibt -- es ist manchmal sehr interessant, was für Antworten wir dabei erhalten. :-)
[1] https://scrapy.org/
[2] https://realpython.com/