0

许多网页没有描述元标记,例如维基百科。这里说,如果标签不存在,那么像谷歌这样的搜索引擎会得到更短的段落。我不知道如何使用 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();
4

1 回答 1

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);
    }
于 2013-05-13T08:43:18.470 回答