"Wie kann man den Seitenquelltext einer Webseite auslesen, um z.B. gezielt nach bestimmten Link-Verweisen, Bildern oder auch Mail-Adressen zu suchen?" Ganz einfach: Dim Quelltext As String Quelltext = WebBrowser1.Document.documentElement.outerHTML Und nun das ganze schön verpackt: Option Explicit ' Ereignis wird ausgelöst, sobald die Webseite ' vollständig geladen wurde Private Sub WebBrowser1_DocumentComplete(ByVal pDisp _ As Object, URL As Variant) On Error Resume Next WebBrowser1.Tag = "" End Sub ' URL (Webseite) laden Private Sub URL_Load(ByVal sURL As String) Dim sQuelltext As String With WebBrowser1 .Tag = "Load" .Navigate sURL ' Warten bis Seite vollständig geladen ist While .Tag <> "" DoEvents Wend End With End Sub ' Bsp.: Seitenquelltext in Datei speichern Private Sub SaveQuelltext(ByVal sFilename As String) Dim F As Integer With WebBrowser1.Document.documentElement F = FreeFile Open sFilename For Output As #F Print #F, .outerHTML; Close #F End With End Sub ' Bsp.: alle EMail-Adressen ermitteln ' Rückgabewert: Array (0..n) mit den gefundenen ' EMail-Adressen Private Function GetMailAdresses() As Variant Dim sMailAdr() As Variant Dim sPos As Long Dim ePos As Long Dim nCount As Integer nCount = 0 With WebBrowser1.Document.documentElement Do ' nach 'href="mailto:' suchen sPos = InStr(sPos + 1, .outerHTML, "href=""mailto:", _ vbTextCompare) If sPos > 0 Then ' Schlusszeichen suchen (") ePos = InStr(sPos + 7, .outerHTML, Chr$(34)) If ePos > 0 Then ' Array um ein Feld erweitern ReDim Preserve sMailAdr(nCount) sMailAdr(nCount) = Mid$(.outerHTML, _ sPos + 13, ePos - sPos - 13) nCount = nCount + 1 End If Else sPos = 0 End If Loop Until sPos = 0 End With GetMailAdresses = sMailAdr End Function Beispiel Und hier der Code: ' Webseite laden Private Sub cmdLoad_Click() URL_Load "Irgendeine URL" End Sub ' Seitenquelltext speichern Private Sub cmdSave_Click() SaveQuelltext App.Path & "\URL_Quelltext.txt" End Sub ' alle vorhanden EMail-Adressen anzeigen Private Sub cmdEMail_Click() Dim I As Integer Dim sMailAdr() As Variant sMailAdr = GetMailAdresses() Text1.Text = "" For I = 0 To Ubound(sMailAdr) Text1.Text = Text1.Text & sMailAdr(I) & vbCrLf Next I End Sub Es gibt natürlich noch zahlreiche weitere Beispiele, die zeigen, was man alles über den Seitenquelltext einer Webseite ermitteln kann. Vorrangig sollte unser heutiger Tipp aber zeigen, wie man überhaupt an den Seitenquelltext einer Webseite gelangt. Dieser Tipp wurde bereits 120.035 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |