从HtmlAgilityPack.HtmlDocument

时间:2017-04-29 11:58:09

标签: c# html redirect html-agility-pack relative-url

我想从互联网上获取一些网页,并在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基本网址是什么网址,但是失败了。或者,换句话说,我不知道如何在重定向之后获取网页的位置

服务器端不是我的(我无法控制它)。

1 个答案:

答案 0 :(得分:0)

考虑ResponseUri并避免第二次调用为html敏捷解析器提供包含页面内容的字符串。