2013-05-12 2 views
0

У многих веб-страниц нет описания метатега, например wikipedia. Here говорит, что если тег не существует, то поисковая система, как Google, получает более короткий абзац. Я не знаю, как реализовать это поведение с помощью HtmlAgilityPack? Если meta-tag пуст или не существует, то получите более короткий абзац из текста. Ниже приведен пример работы, когда существует описание.Как извлечь описание, если метатег не существует?

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

Вы можете использовать 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); 
    } 
Смежные вопросы