许多网页没有描述元标记,例如维基百科。 Here说,如果标签不存在,那么搜索引擎就像Google获得更短的段落。我不知道如何使用HtmlAgilityPack实现此行为?如果元标记为空或不存在,则从文本中获取较短的段落。下面的示例工作在描述存在时。
String description = (from x in content.DocumentNode.Descendants()
where x.Name.ToLower() == "meta"
&& x.Attributes["name"] != null
&& x.Attributes["name"].Value.ToLower() == "description"
select x.Attributes["content"].Value).FirstOrDefault();
答案 0 :(得分:0)
你可以使用XPATH,这样的东西,包装在一个方法中:
static string GetMetaDescription(HtmlDocument doc)
{
// get a META element recursively in the document
// which has a NAME attribute equal to 'description'
// and a non empty CONTENT attribute.
HtmlNode node = doc.DocumentNode.SelectSingleNode("//meta[@name='description' and @content]");
if (node == null)
return null;
// get the value of the CONTENT attribute
return node.GetAttributeValue("content", null);
}