1

我想从互联网上获取一些网页,并通过在 C# 中使用 HtmlAgilityPack 获取页面上某些图像的绝对 URL。

问题是...

网站会先将URL重定向到另一个 URL,然后标签中的src属性是相关 URL<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();

上面的代码从给定的示例 url 中获取网页,并<img>从 DOM 树中获取一些元素,并获取src它的属性。

如果<img>有绝对网址,它就可以工作。但不幸的是,我要处理的网站给了我一个相关的 URI(例如/img/01.png)。我需要绝对 URL,以便我可以对图像进行更多选择。

所以,我需要知道什么 URL 是给定的基本 URLsrc,但失败了。或者,换句话说,我不知道如何在redirect之后获取网页的位置


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

4

1 回答 1

0

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

于 2017-04-29T14:05:03.693 回答