Obtenga la URL absoluta de la imagen de algún nodo en HtmlAgilityPack.HtmlDocument

c# html html-agility-pack redirect relative-url

Pregunta

Quiero obtener alguna página web de Internet y obtener URL absolutas de algunas imágenes en la página usando HtmlAgilityPack en C #.

El problema es...

El sitio web primero redireccionará la URL a otra, y luego el atributo src en la etiqueta <img> es la URL relacionada .


Actualmente, tengo algunos códigos como este:

using HtmlAgilityPack;

HtmlDocument webpageDocument = new HtmlWeb().Load("http://xyz.example.com/");
HtmlNodeCollection nodes = webpageDocument.DocumentNode.SelectNodes("//img");
String url = nodes[0].Attributes["src"].Value.ToString();

Los códigos anteriores recuperan una página web de la url de ejemplo dada, obtienen un elemento <img> del árbol DOM y obtienen su atributo src .

Funciona si el <img> tiene url absoluta. Pero desafortunadamente, el sitio web que quiero manejar me proporciona un URI relacionado (por ejemplo, /img/01.png ). Necesito la URL absoluta para poder hacer más opciones sobre la imagen.

Por lo tanto, necesito saber qué URL es la URL base para un src dado, pero falló. O, en otras palabras, no sé cómo obtener la ubicación de la página web después de la redirección .


El lado del servidor no es mío (no tengo control sobre él).

Respuesta popular

Considere ResponseUri y para evitar la segunda llamada, en su lugar, proporcione al analizador de agilidad html la cadena con el contenido de la página.



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