vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Daten aus Webseite auslesen 
Autor: alert
Datum: 02.05.08 13:50

Daten aus Webseite auslesen

Hallo,
Könnte mir mal jemand beim folgenden Problem behilflich sein?
Vielleicht läßt sich das ganze ja auch noch anders realisieren
habe da schon einiges hat aber alles nicht so recht geklappt.

Hier mein bisheriger funktionierender CODE:

Option Explicit
 
Private databuffer As String
Private mDirty As Long
 
 
Function GetRawInfos(HTML As String) As String
' Diese Funktion nimmt ein paar Anpassungen am herausgeschittenen
' HTML-Quellcode vor damit die Anzeige von eher unnötigen Zeichen
' befreit ist.
 
    On Error Resume Next
    Dim Pos As Long, Pos2 As Long
    Dim strTemp1 As String, strTemp2 As String
 
    ' HTML-Tags entfernen
    Pos = InStr(1, HTML, "<")
 
    Do While Pos > 0
        Pos2 = InStr(Pos + 1, HTML, ">")
        strTemp1 = Mid$(HTML, 1, Pos - 1)
        strTemp2 = Mid$(HTML, Pos2 + 1)
        HTML = strTemp1 & " " & strTemp2
        Pos = InStr(1, HTML, "<")
    Loop
 
    ' Zeilenumbrüche konform machen (wetter.net spezifisch)
    HTML = Replace$(HTML, vbLf, vbCrLf, , , vbTextCompare)
 
    ' doppelte Leerzeichen entfernen
    While InStr(1, HTML, "  ", vbTextCompare) > 0
        HTML = Replace$(HTML, "  ", " ", , , vbTextCompare)
    Wend
 
    ' Umwandlung einiger HTML-Entitäten in ihre Repräsentationen
    HTML = Replace$(HTML, "ä", "ä", , , vbTextCompare)
    HTML = Replace$(HTML, "ö", "ö", , , vbTextCompare)
    HTML = Replace$(HTML, "ü", "ü", , , vbTextCompare)
    HTML = Replace$(HTML, "A", "Ä", , , vbTextCompare)
    HTML = Replace$(HTML, "Ö", "Ö", , , vbTextCompare)
    HTML = Replace$(HTML, "Ü", "Ü", , , vbTextCompare)
 
    GetRawInfos = Trim$(HTML)
End Function
 
Private Sub Inet1_StateChanged(ByVal State As Integer)
    ' Wenn Daten komplett erhalten, alle Daten abrufen
    If State = icResponseCompleted Then
        Dim chunk As String
 
        chunk = Inet1.GetChunk(1024, icString)
        databuffer = chunk
        While Len(chunk) > 0
            chunk = Inet1.GetChunk(1024, icString)
            databuffer = databuffer & chunk
        Wend
    End If
End Sub
 
Private Sub Command1_Click()
    On Error GoTo ErrHANDLER
    Dim SiteHTML As String
    Dim ErgStr As String
    Dim Pos1 As Long, Pos2 As Long
    Dim W1 As String, W2 As String
 
    Inet1.Cancel
 
Dim I As Long
With lstLink
  For I = 0 To .ListCount - 1
    W1 = Trim$(lstLink.List(I))
    W2 = Trim$(lblLink2.Caption)
 
    Inet1.AccessType = icUseDefault
    Inet1.Execute Trim$( _
      "http://www.discounter-archiv.de/de/preisliste/ALDI-Nord/Backwaren/")
    While Inet1.StillExecuting
        DoEvents
    Wend
    SiteHTML = databuffer
    Pos1 = InStr(1, SiteHTML, W1)
    Pos2 = InStr(Pos1 + Len(W1), SiteHTML, W2)
    ErgStr = Mid$(SiteHTML, Pos1 + Len(W1), Pos2 - (Pos1 + Len(W1)))
    Text1.Text = Text1.Text & GetRawInfos(ErgStr) & vbCrLf
  Next I
End With
Exit Sub
ErrHANDLER:
    Inet1.Cancel
End Sub
Das klappt auch alles dauert zwar ein wenig lange aber ist nicht unbedingt gravierend.
Jetzt zum eigentlichen Problem.
Die Links bzw. die Produkte die ich auslese stehen folgenderweise im Quelltext:

   <td><a _
     href="http://www.discounter-archiv.de/de/preisliste/ALDI-Nord/Brot/Baguet" & _
     "es/902/">Baguettes</a></td>
          <td>0.39</td>
usw.
Auslesen des PRODUKTS (Baguettes) //der PRODUKTE geht, nur wie
kann ich auch den nachfolgenden Preis in eine
zweite Textbox oder ListBox, einlesen?

lstLink.List
In der ListBox stehen alle Links der Webseite:

lblLink2.Caption = "</a></td>"
mfg, alert
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Daten aus Webseite auslesen937alert02.05.08 13:50

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel