Ottieni l'URL assoluto dell'immagine da qualche nodo in HtmlAgilityPack.HtmlDocument

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

Domanda

Voglio prendere qualche pagina web da internet e ottenere URL assoluti di alcune immagini sulla pagina usando HtmlAgilityPack in C #.

Il problema è...

Il sito Web reindirizzerà prima l'URL a un altro, quindi l'attributo src nel tag <img> è l' URL correlato .


Attualmente, ho alcuni codici come questo:

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();

I codici sopra recuperano una pagina web dall'URL di esempio fornito e ottengono alcuni elementi <img> dall'albero DOM e ottengono l'attributo src di esso.

Funziona se il <img> ha un URL assoluto. Ma sfortunatamente il sito web che voglio gestire mi fornisce un URI correlato (es. /img/01.png ). Ho bisogno dell'URL assoluto per poter fare più opzioni sull'immagine.

Quindi, ho bisogno di sapere quale URL è l' URL di base per dato src , ma non è riuscito. O, in altre parole, non so come ottenere la posizione della pagina web dopo il reindirizzamento .


Il lato server non è mio (non ne ho il controllo).

Risposta popolare

Considerare ResponseUri e per evitare la seconda chiamata dare al parser di agilità html la stringa con il contenuto della pagina.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché