PDA

Vollständige Version anzeigen : Website per VBA auslesen


skipper1
13.07.2012, 06:02
Hallo,

ich möchte eine Website per VBA auslesen, wobei ich allerdings den HTML-Body brauche, da ich wissen muss, ob bestimmte Grafiken enthalten sind. Diese geben Info darüber, ob eine Person z.B. Heute/Morgen/Übermogen anwesend ist.
Soviel zum Zweck des Abrufs. Der Status ist leider nicht als Text hinterlegt.

Mein bisheriger Code:

Sub Abruf()
For i = 1 To 99
strURL = "http://www.irgendwas.de/" & i & "/"
Set objB = CreateObject("InternetExplorer.Application")
objB.Navigate strURL
Do
Loop Until Not objB.Busy
strText = objB.Document.Body.InnerHtml
objB.Quit
Set objB = Nothing
Next i
End Sub


Nun gibt es zwei Probleme. Entweder wird der Zustand "Not objB.Busy" nicht erreicht, oder wenn es klappt, bekomme ich einen Laufzeitfehler beim Laden des Textes nach strText.

Kann man das noch anders lösen oder ist die Routine fehlerhaft? Es hat übrigens bisher mit wenigen Ausnahmen funktioniert.

Vielen Dank schon mal an alle, die sich mit diesem komplexen Thema beschäftigen und Tipps geben können.

VG
Peter

CitizenX
13.07.2012, 07:13
Hi,
das ReadyState fehlt:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Dim</span> IE
<span class="TOKEN">Dim</span> strText <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
<span class="TOKEN">Set</span> IE = CreateObject(&quot;Internetexplorer.Application&quot;)
&nbsp;
IE.navigate &quot;http://www.irgendwas.de/&quot; &amp; i &amp; &quot;/&quot;
&nbsp;
<span class="TOKEN">While</span> IE.busy: <span class="TOKEN">Wend</span>
&nbsp;
IE.Visible = <span class="TOKEN">True</span>
&nbsp;
<span class="TOKEN">While</span> IE.ReadyState &lt;&gt; 4: <span class="TOKEN">Wend</span>
&nbsp;
strText = IE.Document.Body.InnerHtml</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)