我想从互联网上获取一些网页,并在C#中使用HtmlAgilityPack获取页面上某些图像的绝对URL。
问题是......
网站首先将网址重定向到其他网站,然后src
标记中的<img>
属性为相关网址。
目前,我有一些这样的代码:
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();
以上代码从给定的示例网址中获取网页,并从DOM树中获取一些<img>
元素,并获取其src
属性。
如果<img>
有绝对网址,则有效。但不幸的是,我想要处理的网站给了我一个相关的URI(例如/img/01.png
)。我需要绝对URL,以便我可以对图像做更多选择。
因此,我需要知道给定src
的基本网址是什么网址,但是失败了。或者,换句话说,我不知道如何在重定向之后获取网页的位置。
服务器端不是我的(我无法控制它)。