HtmlAgilityPack.HtmlDocumentの一部のノードからイメージの絶対URLを取得する

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

質問

私はインターネットからいくつかのウェブページを取得し、C#でHtmlAgilityPackを使ってページ上のいくつかの画像の絶対URLを取得したい。

問題は...

ウェブサイトは、最初にURLを他のURLにリダイレクトし、 <img>タグのsrc属性は関連するURLです。


現在、私はこのようないくつかのコードを持っています:

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

上のコードは、指定されたサンプルURLからWebページを取得し、DOMツリーからいくつかの<img>要素を取得し、そのsrc属性を取得します。

<img>に絶対URLがある場合に機能します。しかし残念ながら、私が扱いたいウェブサイトは、私に関連するURI(例えば、 /img/01.png )を与えてくれます。絶対URLが必要なので、画像についてさらに多くのオプションを設定できます。

だから、私はどのURLが特定のsrc ベースURLであるのかを知る必要がありますが、失敗しました。または、別の言葉では、 リダイレクト後にウェブページの場所を取得する方法がわかりません。


サーバー側は私のものではありません(私はそれを制御できません)。

人気のある回答

ResponseUriを考慮し、2番目の呼び出しを避けるために、HTMLの敏捷性に文字列をページの内容で置き換えます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ