如何使用 HtmlAgilityPack 提取完整 url - C#
好吧,按照下面的方式,它只提取像这样的引用 url 的
提取代码:
foreach (HtmlNode link in hdDoc.DocumentNode.SelectNodes("//a[@href]"))
{
lsLinks.Add(link.Attributes["href"].Value.ToString());
}
url 代码
<a href="Login.aspx">Login</a>
提取的 url
Login.aspx
但我想获得浏览器解析的真实链接,就像
http://www.monstermmorpg.com/Login.aspx
我可以通过检查 url 是否包含 http 来完成,如果不包含,则添加域值,但在某些情况下它可能会导致一些问题,我认为这不是一个非常明智的解决方案。
时间:2019-03-07 标签:c#4.0、HtmlAgilityPack.1.4.0
Alright with the way below it is extracting only referring url like this
the extraction code :
foreach (HtmlNode link in hdDoc.DocumentNode.SelectNodes("//a[@href]"))
{
lsLinks.Add(link.Attributes["href"].Value.ToString());
}
The url code
<a href="Login.aspx">Login</a>
The extracted url
Login.aspx
But i want to get real link what browser parsed like
http://www.monstermmorpg.com/Login.aspx
I can do it with checking the url whether containing http and if not add the domain value but it may cause some problems at some occasions and i think not a very wise solution.
c# 4.0 , HtmlAgilityPack.1.4.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您有原始 url,您可以将解析后的 url 组合起来,如下所示:
注意使用
AbsoluteUri
而不是依赖于ToString()
,因为ToString
code> 对 URL 进行解码(以使其更加“人类可读”),这通常不是您想要的。Assuming you have the original url, you can combine the parsed url something like this:
Note the use of
AbsoluteUri
and not relying onToString()
becauseToString
decodes the URL (to make it more "human-readable"), which is not typically what you want.这就是你应该做的。 Html Agility Pack 对此没有任何帮助:
That's what you should do. Html Agility Pack has nothing to help you with this: