如何在 AngleSharp 项目对象中获取链接的标题?

Posted

技术标签:

【中文标题】如何在 AngleSharp 项目对象中获取链接的标题?【英文标题】:How do I get a Title of the link in AngleSharp item object? 【发布时间】:2019-11-22 10:42:51 【问题描述】:

这是一个链接:

<a title = "mylink" href="mysite">content</a>

在 AngleSharp 对象中,我可以使用以下代码轻松获得 content

string innerContent = item.TextContent;

但我需要获得链接的标题和href。我该怎么做?

【问题讨论】:

【参考方案1】:

请注意,AngleSharp 使用 W3C 定义的标准 DOM - 因此您只需搜索“如何从 DOM 中的锚元素获取 href”即可检索答案。为了完整起见,示例搜索查询导致(在 Google 上首次点击)Get local href value from anchor (a) tag,它回答了您的问题。

刚刚翻译成C#意思是

var anchor = item as IhtmlAnchorElement; // Assumption: You have obtained it "only" as an IHtmlElement
string title = item.Title;
string href = item.Href;

备注:.GetAttribute("href").Href 是有区别的。前者始终 可用(即使在非IHtmlAnchorElement 上)并为您提供真实 值。后者是在某些元素上可用的特殊计算版本(例如,IHtmlAnchorElement),它会为您提供一个规范化版本,已经考虑了当前文档的基本 URL。

TL;DR:.Href 会给你一个绝对 URL,而.GetAttribute("href") 可能会给你一个相对 URL。

HTH!

【讨论】:

以上是关于如何在 AngleSharp 项目对象中获取链接的标题?的主要内容,如果未能解决你的问题,请参考以下文章

AngleSharp 自带的HttpRequest参数设置

PuppeteerSharp+AngleSharp的爬虫实战之汽车之家数据抓取

AngleSharp一些示例

用AngleSharp & LINQPad抓取分析博客园排行榜

AngleSharp 的Dom 选择器

AngleSharp Html Parser 线程安全吗?