Wie erhalte ich eine URL vom Attribut href?

html-agility-pack vb.net xpath

Frage

Ich kann keine URLs von href-Attributen abrufen. Ich benutze diesen Code

Dim url As String = "http://example.com/"
Dim web As New HtmlWeb()
Dim doc As HtmlDocument = web.Load(url)

For Each item As HtmlNode In doc.DocumentNode.SelectNodes("//a/@href")
    If Not item Is Nothing Then
        Response.Write(item.OuterHtml)
    End If
Next

Aber es funktioniert nicht.

Akzeptierte Antwort

Da href ist ein Attribut , müssen Sie es in eckigen Klammern setzen []

Beachten Sie, dass Attribute in eckigen Klammern stehen, wenn Sie nach ihnen suchen.

//a[@href]

In deinem Fall musst du alle //a Knoten bekommen, dann nach HasAttributes("href") und schließlich Attributes("href") .

For Each item As HtmlNode In doc.DocumentNode.SelectNodes("//a")
    If Not item Is Nothing And item.HasAttributes("href") Then
        Response.Write(item.Attributes("href").Value)
    End If
Next

Beliebte Antwort

@Sunil Ich habe diese Methode benutzt, um Demo-Videos von lynda.com zu bekommen, aber es funktioniert nicht! und es wird 403 Fehler

 HtmlNode videoNode = doc.DocumentNode.SelectSingleNode("//video[@class='player']");
                string firstsLink = videoNode.Attributes["data-src"].Value;
                List<string> secLink = firstsLink.Split(';').ToList();
                videoURL = (secLink[index: 0]); 

https://www.lynda.com/mocha-tutorials/mocha-5-Essential-Training/601820-2.html



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum