Wie kann ich Daten aus Webseite live auslesen lassen?

m8fun  10.05.2021, 15:55

Um welche Webseite geht es? Am einfachsten ist es, wenn die Webseite eine API zur Verfügung stellt

Jonathan22222w 
Beitragsersteller
 10.05.2021, 16:10

z.b. YouTube.de und die RKI Corona Seiten.

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Grundsätzlich, indem du weiß, ich welchen Elementen das steht und dann

JavaScript:
elemente = document.getElementsByTagName(p)[5]; //oder ID oder CallsName, bei ID aber document.getElementById, die letzte Zahl ist die Sortiernummer der Elemente auf der Website
element_text = parseInt(element.innerHTML);

Das wäre es soweit.

Woher ich das weiß:Hobby – seit 2020 Erfahrung mit PHP, Laravel, Vue sowie Javsscript

Jonathan22222w 
Beitragsersteller
 10.05.2021, 20:19

Oh, okay, gibt es dazu gute YT Tutorials?

0
ByteMaster42  11.05.2021, 07:06
@Jonathan22222w

Ich gucke selber kein YT, da ich dabei eigentlich wenig lernen kann. Versuch es mal mit Büchern ;-)

1
regex9  17.05.2021, 08:22

Mit diesem Snippet könnte man nur auf der Seite agieren, auf der das Skript auch eingebunden ist.

HTML zum Parsen einer Zahl mit einzubeziehen, ist im Übrigen nicht sinnvoll.

0
  1. Google stellt für YouTube eine API bereit, über die Daten ausgelesen werden können: https://developers.google.com/youtube/v3
  2. Auch zu Corona-Statistiken findest du eine REST API vom RKI: https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/DESH/Spezifikation-Upload.html

Zum Auslesen der Daten musst du dir eine Anwendung mit irgendeiner Programmiersprache zusammenbauen, die ungehindert HTTP Requests an so eine API ausschicken kann. Java, Python oder PHP wären bspw. Kandidaten. Grundkenntnise zu der gewählten Sprache sollten bereits vorhanden sein.

YouTube stellt zu den genannten Optionen (und weiteren) Client-Bibliotheken zur Verfügung. Du findest ausreichend Informationen in der Dokumentation.

Ansonsten haben die benannten Programmiersprachen selbst Mittel:

Das Prinzip dafür ist recht simpel:

Du musst einen Request an die Adresse / URL schicken, die dir die von dir erwarteten Informationen liefert. Diese Informationen werden in der Regel als JSON-String zurückgegeben, den du folgend parsen und auswerten kannst. JSON-Parser stellen die gelisteten Programmiersprachen auch zur Verfügung (Java: gson-Bibliothek, Python: json-Modul, PHP: json_decode-Funktion). Was du für den Request alles benötigst (Maßnahmen zur Authentifizierung, Aufbau des Requests, etc.) steht in der jeweiligen API-Dokumentation. Mit der musst du dich ausführlich beschäftigen.

Wenn es für eine Webseite keine API gibt, stände noch die Möglichkeit des Webscraping im Raum (via Google lassen sich unter diesem Begriff schnell konkrete Tutorials finden). Erneut kann man dafür mit den oben genannten Technologien arbeiten und in diesem Fall einen GET-Request an die jeweilige Webseite schicken und den Response (HTML) mit String-Funktionen, regulären Ausdrücken, Parsern u.ä. auswerten.

Unter Umständen ist man damit aber auch nicht erfolgreich, da Inhalte auch nachträglich auf der zu durchsuchenden Webseite geladen werden könnten. In diesem Fall wäre es besser, ein Framework wie Selenium einzusetzen. Zu Selenium findest du Bindings zu Programmiersprachen wie Java, Python oder C#.

Was tatsächlich notwendig ist, solltest du im Voraus ermitteln, indem du die Webseite mit den Webentwicklertools deines Browsers untersuchst. Du musst wissen, welches Element die erforderlichen Informationen bereithält und wie du an dieses gelangen kannst (das Konzept des DOM zu kennen, wäre vorteilhaft). Was initial an Inhalten geladen wird, kannst du ermitteln, indem du den Seitenquelltext der Webseite öffnest (Rechtsklick auf die Seite > Seitenquelltext anzeigen). Die Inhalte im Webinspektor hingegen zeigen dir das aktuelle DOM.

Bevor du Scraping in Erwägung ziehst, lies aber hier. Die Nutzung einer API solltest du stets vorziehen. Webscraping zu betreiben, trotz einer bereitgestellten API, ist so, als würdest du durch die Katzenklappe der Hintertür in ein fremdes Haus kriechen, statt höflich vorn anzuklopfen.

Bevor du dich damit beschäftigst, wie das geht, solltest du dich auch damit beschäftigen, ob du das auf der betreffenden Website darfst.

Und zum Thema: da gibt es mehrere Optionen. Wenn es nur ein Wert ist, würde ich die Seite bzw. deren Quelltext mit fopen in eine Variable packen und dann den Wert herausfiltern.


Jonathan22222w 
Beitragsersteller
 10.05.2021, 16:23

"Bevor du dich damit beschäftigst, wie das geht, solltest du dich auch damit beschäftigen, ob du das auf der betreffenden Website darfst." dürfen denn dann YouTube Live Ticker das? Und ich würde das auch nicht online stellen, sondern nur ins Heimnetz.

0