Olafs Browser

03/12/2011 - 12:24 von Hermie | Report spam
Hallo!

Irgendwas làuft hier noch schief beim Auslesen der Links:


Private Sub Browser_LoadCommited(URL As String)

m_sRoot = URL

End Sub


Private Sub Browser_LoadFinished(ByVal BackCount As Long, ByVal
ForwardCount As Long)

Dim Doc As IDOMDocument
Set Doc = Browser.Document '<- Cast von Variant-ReturnType

On Error Resume Next

Debug.Print "-Start Body-innerText-Ausgabe-"
Dim Body As WebKit.IDOMHTMLElement
Set Body = Doc.getElementsByTagName("body").Item(0)

Debug.Print Body.innerText
Debug.Print "--Ende Body-innerText-Ausgabe--"; vbCrLf

Debug.Print "Start Enumeration von Link-Tags"
Dim i&
Dim NodeList As WebKit.IDOMNodeList
Dim Node As WebKit.IDOMNode
Dim LnkElmt As WebKit.IDOMHTMLElement

Set NodeList = Doc.getElementsByTagName("a") 'Link-NodeList
If Not NodeList Is Nothing Then
For i = 0 To NodeList.Length - 1
Set Node = NodeList.Item(i)
Set LnkElmt = Node 'cast von IDOMNode auf IDOMHTMLElement
' Debug.Print "inner text: " & LnkElmt.innerText; " --> ";

Set Node = LnkElmt.Attributes.getNamedItem("href")

If Not Node Is Nothing Then

Dim sLink$
sLink = Trim(Node.textContent)


In diesem Fall ist m_sRoot jetzt
http://www.telegraaf.nl/binnenland/...sdag_2011/

Und sLink ist
/binnenland/Prinsjesdag_2011/

Wenn ich jetzt beides kombiniere, um den Link zu kriegen, habe ich

http://www.telegraaf.nl/binnenland/...sdag_2011/

Und das ist leider nicht richtig, irgendwo làuft da noch was verkehrt.

Dieses Muster von doppelten Pfaden kommt so hàufig vor, dass das kein
Zufall sein kann.

Gruß,
Hermie
 

Lesen sie die antworten

#1 Schmidt
04/12/2011 - 23:21 | Warnen spam
Am 03.12.2011 12:24, schrieb Hermie:

Und sLink ist
/binnenland/Prinsjesdag_2011/

Wenn ich jetzt beides kombiniere, um den Link zu kriegen, habe ich

http://www.telegraaf.nl/binnenland/...sdag_2011/



Ich denke, wenn 'sLink' mit einem Slash beginnt,
dann darf die Verknüpfung mit der "Basis-URL"
nicht einfach so (hintendran) erfolgen, sondern
stattdessen besser mit der "Domàne-der-Basis-URL".

Also wenn die BasisURL des Frames (m_sRoot) z.B.:
http://www.telegraaf.nl/binnenland/...sdag_2011/

lautet, und ein sLink gefunden wird wie z.B.:
images/1.jpg

dann wàre die "bloße Verkettung" mit der BasisURL
in Ordnung -
http://www.telegraaf.nl/binnenland/...ages/1.jpg

fàngt sLink mit einem Slash an wie z.B.:
/js/some.js
dann musst Du (IMO, nicht 100% sicher) aus der
BasisURL die Domàne herausparsen:
http://www.telegraaf.nl/
und dann nur noch damit verketten:
http://www.telegraaf.nl/js/some.js

Hoffe, das ist die Ursache.

Olaf

Ähnliche fragen