Wie komme ich an die Elemente von einer Website?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von VincentTB.

    Wie komme ich an die Elemente von einer Website?

    Hallo,
    ich würde gerne eine Website auslesen, jedoch stehen die Informationen in den "Elementen" der Website. Ich habe erstaunlicherweise nichts im Internet darüber gefunden...
    Um zu verdeutlichen, was ich jetzt genau will, hier nochmal ein Bild:

    Würde mich über etwas Hilfe freuen ;)
    Mfg
    Vincent

    Was genau willst du erreichen? So, wie ich das verstehe, gibt es dazu alleine hier schon tausende Threads. RegEx/HtmlAgilityPack.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Okay, hier mein Vorhaben:
    Es gibt eine Seite, welche LolNexus heißt. Man kann über die Seite Informationen über ein aktuelles Match von League Of Legends abrufen. Ich will einfach nur diese Informationen in meinem Programm darstellen. Jetzt ist es so, dass man diese Informationen nicht über den Quelltext bekommt. Aber ich habe entdeckt, dass man das alles über Google Chrome bei "Elemente durchsuchen" sehen kann. Also habe ich mir gedacht: Wenn das Chrome kann, kann VB das auch. Also habe im Internet nach ".Net get elements from website" gesucht, aber absolut nichts gefunden, was mir weiterhelfen könnte.
    Mfg
    Vincent

    Der Quelltext in der Developer Console ist der derzeitige Quelltext der Seite. Dieser unterscheidet sich höchstens durch JavaScript-Ausführung vom dem Quelltext, den man sich beispielsweise per WebClient herunterladen kann. Hast du mal geguckt, ob diese Daten per AJAX nachgeladen werden?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Ok die Frage interessiert mich auch, zwar nicht die League of Legends Seite, aber man kann (natürlich) den aktuellen Quelltext anzeigen lassen, man kann den ganzen DOM auch als XML speichern und so bequem einzelne Teile/Links/was auch immer suchen und das Programm von alleine laufen lassen. (Ich nutzte HTML Agility Pack und kann so bequem auf jedes Element zugreifen)

    Bis auf JavaScript eben, da ja standardmäßig natürlich kein Compiler für JavaScript im Programm vorhanden ist und so zwar das grobe "Baugerüst" gezeigt wird, aber asynchron ja keine Daten nachgeladen werden. Muss man jetzt von jeder Internetseite exakt den Javascript code analysieren und per hand httprequests schicken? Oder gibt es dafür irgendeine API? Ich suche schon länger danach wäre super praktisch!
    Automatisch laden tut sich JavaScript ja in der "WebBrowser"-Klasse... Also wäre das denke ich mal am einfachsten so zu implementieren. Dennoch leider nicht automatisch..
    @Lukas
    Es kann gut sein, dass Ajax benutzt wird, zumindest ist diese Zeile im Quellcode zu finden:
    Spoiler anzeigen

    Quellcode

    1. $.ajaxSetup({
    2. data: {},
    3. timeout: 30000
    4. });


    Was muss ich nun tun? Übrigens, wenn jemand nochmal nachgucken will, über diesen Link kann man ein zufälliges Spiel anzeigen: lolnexus.com/random


    Heißt dass, das wenn ich ein Webbrowser Control nehmen und alle 3 Sekunden den Quelltext neu auslesen und in einer Richtextbox darstellen würde, nach kurzer Zeit in der Richtextbox das steht, was ich auch in den Elementen bei GoogleChrome sehe?
    Mfg
    Vincent

    In der Developer Console kannst du übrigens Ajax-Requests mitloggen lassen:


    Die Daten, die du suchst, wirst du wohl hier finden:
    lolnexus.com/ajax/get-game-info/EUW.json?name=x
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    @RushDen
    Ich weiß zwar nicht genau, welche du meinst, aber alle APIs, die ich bisher gefunden habe, haben nicht sowas wie Premade Status angezeigt.

    @Lukas
    Vielen Dank, das ist einfach perfekt :)
    Mfg
    Vincent