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).
Considerare ResponseUri e per evitare la seconda chiamata dare al parser di agilità html la stringa con il contenuto della pagina.