Mit Visual Basic Daten aus HTML Seite auslesen

Ich möchte mir ein einfaches VB Tool basteln mit dem ich Daten aus einer HTML seite einlesen und darstellen kann.

Gibt es eine Möglichkeit wie ich aus dem HTML text der geöffneten seite bestimmte stellen einlesen kann?

beispielsweise ein messenger aus einer webseite.
wieviele gerade online sind und wer. wieviele nachrichten ich habe und so weiter.
bitte um hilfe :smile:
hier ein link zu einem bild des messengers.
ich möchte anzahl der onlineuser anzahl der nachrichten
und wer online ist auslesen.

http://www.pic-monster.de/bild/39023/1231233KYUD.png

Hallo,

sofern der Messenger als HTML-Tabelle dargestellt wird (also nicht als Flash oder anderes Active-X Objekt), müsste man die Seite abspeichern, danach als Text-Datei einlesen (Open-Anweisung for Input) und jeweils die und - Tags zählen, um zu wissen, welche Zelle gerade diejenige mit den gewünschten Informationen ist. Eine elegantere Lösung fällt mir derzeit leider nicht ein.

vielen dank für die antwort.
ich bin noch neu was vb angeht …
kannst du mir ein einfaches script geben das ich für meine bedürfnisse dann anpasse?

Das wird sehr schwierig sein, weil die Daten nicht statisch in einer HTML-Seite stehen. Keine Ahnung, wie man das lösen sollte.

Hier ein kleines Beispiel, es wird jeweils der Zeilen-oder Spalten-Tag ausgegeben (MsgBox)

Sub HTML_auslesen()
Dim Datei As String
Dim HTML_Code As String
Dim Zeile As Integer
Dim Spalte As Integer

'Initialisierung
Datei = „C:\Temp\MeineSeite.html“ 'Hier muss der Pfad zur gespeicherten Seite hinein, ggf. funktioniert auch die Angabe im Web (http://www.microsoft.com/de-de/default.aspx), Microsoft arbeitet aber mit statt mit und
Zeile = 0
Spalte = 0

'Coding
Open Datei For Input As #1
Do While Not EOF(1)
Line Input #1, HTML_Code

'Prüfen, ob HTML-Code für Zeilenanfang vorhanden (hier: )
'Achtung, es können im Tag, also zwischen den spitzen Klammern auch weitere Angaben wie z.B. Width=… usw. stehen,
'daher wird nicht auf kompletten Tag geprüft, sondern nur auf den Anfang 0 Then
Zeile = Zeile + 1
End If
'Prüfen, ob HTML-Code für neue Spalte vorhanden (hier: ), siehe Anmerkung bei
If InStr(1, UCase(HTML_Code), " 0 Then
Spalte = Spalte + 1
End If

If InStr(1, UCase(HTML_Code), " 0 Or InStr(1, UCase(HTML_Code), " 0 Then
MsgBox HTML_Code
End If
Loop
Close #1
End Sub

Jetzt muss man nur noch die Zeichenkette zwischen den beginnenden Tag (z.B. ) und dem schließenden Tag () auslesen. Dies kann man z.B. mit der MID()-Funktion (siehen VB-Hilfe). Damit kann man sich prima den aus der HTML-Seite ausgelesenen Code stückeln. Mittels der oben verwendeten Instr()-Funktion wird einem die Position der gesuchten Zeichenkette angegeben, so dass man sich quasi nur noch der vom vorarbeiten muss und danach ist dann quasi der Zellinhalt bis zum nächsten

  1. Zeile, 1. Spalte
  2. Zeile, 2. Spalte
  3. Zeile, 1. Spalte
  4. Zeile, 2. Spalte

Ein bissle knifflig wird es, wenn der HTML-Code nicht sauber, also Zeilenweise geordnet geschrieben ist, dann steht ggf. der gesamte HTML-Code in einer Zeile. Es wird also nicht ganz einfach sein, die Spezifika der entsprechenden Seite auszulesen, da diese sehr unterschiedlich sein können.

Viel Spass mein Ausprobieren!

1 Like

Ich vermute du meinst VB Script. Damit kenne ich mich nur wenig aus, sorry

Gruß
Cas

danke.
prinziep verstanden :smile:
nur leider wird das scheinbar nicht mit meinem vorhaben umsetzbar sein …
wie du schon sagtest der code muss komplett in tabellen geschrieben sein.
ist er leider nicht.
es gibt nen gerüst aus tabellen. aaber der inhalt ist in feldern platziert…
also wird immer ne ganze zeile mit den unnötiegen infos ausgelesen.
das trifft nicht ganz das was ich vor hatte.

ich glaub da währs echt einfacher wenn man datanbankzugriffe hätte und die daten direkt auslesen könnte.
nur die wird es logischerweise nicht geben :frowning:

aber vilen dank für die infos :smile:
villeicht kann ichs mal woanders gebrauchen :smile:

Hier der passende Link zu Google um Infos zu bekommen:

http://www.google.de/#sclient=psy-ab&hl=de&q=html+pa…

Viel Erfolg bei der Umsetzung!

gerne, dafür ist doch das Forum da :smile: