tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Masterclavat
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
651
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Hallo
    Ich möchte von einer Website zbs. den Teil zwischen <title> und </title> auslesen.
    In diesem fall wäre es ja der Titel...
    Leider weiß ich nicht wie ich jetzt einen bestimmten teil auslesen kann.
    Die Seite downloaden und in einen String laden habe ich wie folgt gemacht:
    Code :
    1
    2
    3
    4
    
            My.Computer.Network.DownloadFile("http://server.dyndns.tv/test.htm", My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor")
            Dim Dat() = File.ReadAllLines(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor")
            File.Delete(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor")
            RichTextBox1.Lines = Dat

    Könnt ihr mir weiterhelfen?
    MFG Styler2go
     

  2. #2
    ripkens ripkens ist offline Mitglied Gold
    Registriert seit
    Jul 2005
    Ort
    NRW
    Beiträge
    161
    Du könntest ein verstekctes Webbrowser Control ins Form einfügen und die URL in den Webbroeser laden.

    Anschliessend kannst Du die Elemente auslesen:

    Code :
    1
    2
    3
    4
    5
    
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If (pDisp Is WebBrowser1.object) Then
    MsgBox(WebBrowser1.Document.All("title").innerHTML)
    End If
    End Sub
     
    Invent- IT-Services - www.invent-it.de
    -Consulting& Konzeption
    -Anwendungs- und Webentwicklung
    -Hosting & Services
    Profil Lexware-Module

  3. #3
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Das schon, nur das mit dem Titel ist ja nur ein beispiel.
    Aber ich werde deinen Tipp gründlich Testen.
    Vielen dank!

    MFG Styler2go
     

  4. #4
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    So konnte ich es leider nicht auslesen...
     

  5. #5
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    Wenn du den Quelltext schon in einen String gespeichert hast, kannst du es mit RegEx lösen:
    Code vbnet:
    1
    
    Dim Titel As String = System.Text.RegularExpressions.RegEx.Match(Quelltext, "<title>(.*?)</title>").Groups(1).Value


    Grüße
    styler2go bedankt sich. 

  6. #6
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Ich danke dir vielmals!
    Damit fuktzionert der Titel nun.
    Nur leider kann ich keine, durch id's bestimmte, div-tags auslesen.
    Beispiel:

    Auf einer Homepage sind 2 div-tags. der eine hat die ID "test1", der andere die ID "test2" also:

    Code :
    1
    2
    3
    
    <title>Willkommen!</title>
    <div id="test1" style="width: 100px; right: 20%; float: left;">Test1</div>
    <div id="test2" style="width: 100px; right: 20%; float: right;">Test2</div>

    Änder ich den Code nun aber in
    Code :
    1
    
                Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test1"" (.*?)</div>").Groups(2).Value
    zeigt er mir nichts an.

    Wisst ihr wie ich nun immer nur ein div Tag auslese?
    Eine testseite habe ich hier gehostet: Klick
    Geändert von styler2go (23.01.09 um 16:06 Uhr) Grund: Projekt entfernt, da unnötig.
     

  7. #7
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    Probiers mal mit
    Code vbnet:
    1
    
    Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test1"" (.*?)</div>").Groups(1).Value
     

  8. #8
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Hmmm... nun zeigt er mir leider noch folgendes an:

    Code :
    1
    
    style="width: 100px; right: 20%; float: right;">

    Kann man das auch noch entfernen lassen?

    Habe schon ein paar Sachen versucht, aber er hat mir dann immer entweder nichts oder einen Fehler angezeigt.

    MFG Styler2go
     

  9. #9
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    Was möchtest du denn angezeigt bekommen? Nur den Inhalt?
    Dann so:
    Code vbnet:
    1
    
    Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test1"".*?>(.*?)</div>").Groups(1).Value

    Hattest den tag nicht geschlossen.
     

  10. #10
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Seltsam...
    Ich verstehe das einfach nicht...
    Wenn ich das über meine Testseite mit gerade einmal 2 div's mache, geht alles bestens.
    Sobald ich aber eine Seite mit mehr div-tags gehe (zbs. youtube, google) zeigt er mir einfach nichts an.
    Hier nochmal der gesamte Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
            If Not TextBox1.Text.StartsWith("http://") Then
                MsgBox("No Valid URL")
            Else
                My.Computer.Network.DownloadFile(TextBox1.Text, My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor")
                Dim Dat = File.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor")
                File.Delete(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor")
                RichTextBox1.Text = Dat.Replace("<br />", vbcr)
                Dim Titel As String = System.Text.RegularExpressions.Regex.Match(Dat, "<title>(.*?)</title>").Groups(1).Value
                Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""" & TextBox2.Text & """.*?>(.*?)</div>").Groups(1).Value.Replace("<br />", vbCr)
                Dim inhalt2 As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test2"".*?>(.*?)</div>").Groups(1).Value.Replace("<br />", vbCr)
                Me.Text = Titel
                RichTextBox1.Text = inhalt & vbCr & "---------" & vbCr & inhalt2
            End If

    Wisst ihr woran das liegen könnte
    Ich danke für jede Hilfe schonmal!
     

  11. #11
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    An deinem Code scheint nichts falsch zu sein, nur musst du drauf achten, dass auch ein Div mit der entsprechenden Id im Quelltext vorhanden ist.

    Ich denke nicht, dass google ein Div mit der Id "test2" hat.

    Schau mal, ob es daran liegt.
     

  12. #12
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Nein, also es ist folgendes:

    Die div-id des titels eines Videos auf Youtube heisst:
    watch-vid-title
    Nun, wenn ich das als ID eingebe,
    (Variable inhalt2 & test2 einfach ignorieren das ist nicht das relevante, relevenat ist inhalt) bleibt der div tag einfach leer.
    Ich werde das Mal an einem Bild zeigen (Anhang)
    Hoffe ihr wisst was ich meine und könnt mir weiterhelfen...
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Bestimmte Daten Auslesen-programing.gif  
    Geändert von styler2go (23.01.09 um 15:51 Uhr) Grund: Falsche Angaben
     

  13. #13
    Masterclavat Masterclavat ist offline Mitglied Brokat
    Registriert seit
    Oct 2007
    Beiträge
    325
    Achso, ich wusste nicht, dass es sich um ein Div von mehreren Zeilen handelt.
    Wenn das so ist, dann übergib dem Optionen-Parameter der Match-Methode (genauer Name ist mir gerade entfallen) folgendes:

    Code :
    1
    
    RegexOptions.SingleLine

    Also:

    Code vbnet:
    1
    
    System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""" & TextBox2.Text & """.*?>(.*?)</div>", RegexOptions.SingleLine).Groups(1).Value.Replace("<br />", vbCr)
     

  14. #14
    styler2go styler2go ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Ort
    Gründau
    Beiträge
    149
    Hehe ich danke euch viemals! Alles t...
    Hat jemand vielleicht noch eine Idee wie man sämtliche html Tags (<b>,</b>,<img>,<table> etc.) aus einem string entfernt?

    Ich habe so Ideen wie:
    Code :
    1
    
    Dim edit As String = inhalt.Replace("<*.*>", "")
    Aber das will leider nicht so richtig.

    MFG Styler2go!


    //EDIT\\

    Hat sich erledigt, ich habe es hinbekommen!
    Für alle hier noch die Lösung:

    Regex.Replace(inhalt, "<.*?>", "")

    Danke an alle die mir geholfen haben.
    Geändert von styler2go (23.01.09 um 19:31 Uhr)
     

Ähnliche Themen

  1. PHP - Bestimmte Daten aus MySQL sichtbar
    Von Firstblu im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.01.10, 20:37
  2. Nur bestimmte Daten aus MySQL zählen!
    Von Boostergermany im Forum PHP
    Antworten: 4
    Letzter Beitrag: 27.10.09, 23:59
  3. Antworten: 4
    Letzter Beitrag: 29.07.05, 10:23
  4. Mit PHP bestimmte Daten aus SQL auslesen
    Von fuschel im Forum PHP
    Antworten: 12
    Letzter Beitrag: 06.02.05, 16:59
  5. Nur bestimmte Daten anzeigen
    Von Soccertipp im Forum PHP
    Antworten: 1
    Letzter Beitrag: 18.08.02, 03:36