Cómo obtener una URL del atributo href

html-agility-pack vb.net xpath

Pregunta

No puedo obtener las URL de los atributos href. Yo uso este codigo

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

Pero no funciona.

Respuesta aceptada

Como href es un atributo, debes ponerlo entre corchetes []

Recuerde que los atributos entran en corchetes cuando los busca por ellos.

//a[@href]

En su caso, necesita obtener todos los //a nodos, luego verificar los HasAttributes("href") de HasAttributes("href") y, finalmente, obtener los 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

Respuesta popular

@Sunil Utilicé este método para obtener videos de demostración de lynda.com, ¡pero no funciona! y obtiene 403 error

 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



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow