Text eines Elementes von Website auslesen

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von Higlav.

    Text eines Elementes von Website auslesen

    Hallo, ich möchte gernen den Text eines Elementes von einer Website auslesen, aber ohne WebBrowser.

    kleines Beipsiel:

    Tabelle folgender Seite: "https://www.vb-paradise.de/index.php?page=UsersOnline", auslesen mit der Id "main"

    Mit dem Webbrowser würde ich es wie folgt machen: Webbrbowser1.document.getelementbyid("main").innertext

    Aber ich möchte es gerne ohne machen ....
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D
    Hast du schonmal Google oder die foreninterne Suche bemüht? Es scheint mir nicht so...
    „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 schrieb:

    Mit nem webclient den Source downloaden & dann mit Regex rausfiltern


    Genaus diese Möglichkeit habe ich bei meinem Recherchearbeit herausgefunden, aber warum soll ich es mir schwer machen wenns auch einfacher geht? Es ist nicht so das ich zu faul wäre mir Regex anzueignen, aber dadurch wird mein Code nur unnötig länger ....
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D
    Ich weiß ja nicht was du für ne Vorstellung von RegEx hast, aber kürzer als damit wird es kaum gehen. Alles andere was ohne RegEx auskommt wird vermutlich länger und umständlicher sein.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.
    Mhhh, villeicht versteht ihr mich falsch. Wenn ich jetzt z.B. den Text eines Elementes mit einem Webbrowser über InnerText bekomme, dann muss ich ihn nicht mehr verändern (in meinem Falle). Wenn ich ihn aber per RegEx aus Qelltext fischen soll, ist das doch viel umständlicher, oder nicht ?
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D
    Quantität und Qualität von Code stehen in keinem Verhältnis. Der Weg über RegEx ist deutlich besser als ein unsichtbares WebBrowser-Element zu verwenden. Idealerweise sollte man, natürlich sofern möglich, auch auf APIs zurückgreifen, die ein einheitliches Interface über XML oder JSON bieten.

    Das Herausfiltern einer bestimmten Stelle sollte nicht mehr als 10-15 Zeilen in Anspruch nehmen. Du kannst dir immer noch Wrapper-Funktionen schreiben, die das ganze übersichtlicher machen.

    btw: Du konntest uns erst von deinen Recherchen und deiner Abneigung gegenüber RegEx berichten, nachdem es jemand angesprochen hat?
    „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.
    Nun, per Regex wäre es sicher am besten. Und wirklich viel Arbeit ist das auch nicht.
    Wenn du noch kein Regex kannst, wäre es vllt. angebracht sich dieses Tutorial anzugucken : [VB 2010] Regex Tutorial für Leute die es einfach nicht verstehen

    Du könntest es aber auch so machen :

    VB.NET-Quellcode

    1. Public Function GetStringBetween(ByVal InputText As String, _
    2. ByVal starttext As String, _
    3. ByVal endtext As String)
    4. Dim lnTextStart As Long
    5. Dim lnTextEnd As Long
    6. lnTextStart = InStr(StartPosition, InputText, starttext, vbTextCompare) + Len(starttext)
    7. lnTextEnd = InStr(lnTextStart, InputText, endtext, vbTextCompare)
    8. If lnTextStart >= (StartPosition + Len(starttext)) And lnTextEnd > lnTextStart Then
    9. GetStringBetween = Mid$(InputText, lnTextStart, lnTextEnd - lnTextStart)
    10. Else
    11. GetStringBetween = "ERROR"
    12. End If
    13. End Function


    Quelle: dreamincode.net/forums/topic/9…-string-between-2-values/

    So geht das auch einfach.
    @ThomasProj

    Verstehe jetzt nicht wirklich was dein Beispiel mir sagen soll .....


    @Lukas

    wenn ich später mal etwas aufwendigeres aus einer Website auslesen kann, dann werde ich bestimmt RegEx benutzen, aber wenn ich einfach den Text aus dem Element bekommen würde, müsste ich diesen nicht mehr verändern ...


    Hoffentlich dachtet ihr jetzt nicht das das Beispiel mein Projekt ist ........
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D
    Das Beispiel soll uns allen verdeutlichen, dass alte VB6-Relikte im Jahre 2013 keine Daseinsberechtigung mehr haben und nicht zu verwenden sind. Man bediene sich des Prinzips der objektorientierten Programmierung.
    „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
    und was ist wen die seite dynamisch generiert wir :D :D

    @VBWorld
    bitte nehme einfach Regex du kannst per Regex.Match alle sachen im Quelltext rausfiltern :)
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    Ich glaube ich muss meine Frage präzisieren :) :

    Gibt es eine Möglichkeit den Text eines Elementes auszulesen ohne Webbrowser und Regex bzw. die Informationen aus dem Quelltext zu ziehen?
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D

    VBWorld schrieb:

    Gibt es eine Möglichkeit den Text eines Elementes auszulesen ohne Webbrowser und Regex bzw. die Informationen aus dem Quelltext zu ziehen?


    Das "ohne" bezieht sich auch auf "die Informationen aus dem Quelltext zu ziehen"
    MFG VBWorld
    Mathe ist für alle die, die nicht mit dem Taschenrechner umgehen können :D
    Ich übersetze: "Kann ich eine Holzhütte bauen, ohne Holz zu verwenden?"

    Um Informationen zu erhalten, müssen die doch irgendwo herkommen? Ohne WebBrowser geht's z.B. mit 'nem WebClient oder HttpWebRequest. Ohne Regex nur mit deftigem und kompliziertem Gebastel mit Substring etc., aber ohne Quelltext kannst du keine Informationen aus einem Quelltext saugen(Ausser du kannst es glücklicherweise über POST-Methoden erreichen - glaub' ich aber nicht).