Erhalte Image Absolute URL von einem Knoten in HtmlAgilityPack.HtmlDocument

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

Frage

Ich möchte einige Webseiten aus dem Internet abrufen und die absoluten URLs einiger Bilder auf der Seite mithilfe von HtmlAgilityPack in C # abrufen.

Das Problem ist...

Die Website leitet die URL zuerst zu einer anderen URL um, und dann ist das src Attribut im <img> -Tag eine verwandte URL .


Derzeit habe ich einige Codes wie folgt:

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

Die obigen Codes rufen eine Webseite von der gegebenen Beispiel-URL ab und holen ein <img> -Element aus der DOM-Struktur und erhalten das src Attribut davon.

Es funktioniert, wenn das <img> absolute URL hat. Aber leider gibt die Webseite, die ich behandeln möchte, einen verwandten URI (zB /img/01.png ). Ich brauche die absolute URL, um mehr Optionen für das Bild zu haben.

Also, ich muss wissen, welche URL die Basis-URL für bestimmte src , aber fehlgeschlagen. Oder, mit anderen Worten, ich weiß nicht, wie ich den Standort der Webseite nach der Umleitung bekommen soll .


Serverseite gehört nicht mir (ich habe keine Kontrolle darüber).

Beliebte Antwort

Betrachten Sie ResponseUri, und um einen zweiten Aufruf zu vermeiden, geben Sie dem HTML-Agility-Parser stattdessen die Zeichenfolge mit dem Inhalt der Seite.



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