---
title: "DOMXpath как продвинутый парсер или Мой &quot;експеримент&quot;"
description: "Вдохновившись идеей пользователя xapon реализовал такое же \"облако\" ключевых слов на сайтах, зарегис..."
author: "iborodikhin"
published: "2010-10-08T04:59:46+00:00"
modified: "2010-10-08T04:59:46+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/domxpath-kak-prodvinutyy-parser-ili-moy-quot-eksperiment-quot-78088"
markdown_url: "https://yvision.kz/post/domxpath-kak-prodvinutyy-parser-ili-moy-quot-eksperiment-quot-78088/markdown"
site_name: "Yvision.kz"
---

# DOMXpath как продвинутый парсер или Мой &quot;експеримент&quot;

> Вдохновившись идеей пользователя xapon реализовал такое же "облако" ключевых слов на сайтах, зарегис...

Вдохновившись [идеей](http://yvision.kz/community/Web-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0/36273.html) пользователя [!\[DOMXpath как продвинутый парсер или Мой "експеримент"\](http://yvision.kz/images/userpic_small.jpg) xapon](http://xapon.yvision.kz/) реализовал такое же ["облако" ключевых слов](http://internets.kz/keywords) на сайтах, зарегистрированных в каталоге [iNternets.kz](http://internets.kz)

Отличия как в идеологии (данные берутся только для зарегистрированных сайтов, в оригинале же авторы сами добавляют сайты; я показываю только ключевики, занимающие больше 10% от общей массы и не показываю URL'ы сайтов, на которых они встречаются), так и в технике (я не возился два дня с парсером, а воспользовался простой и удобной связкой DOMDocument+DOMXpath).

Вот код моего парсера, чтобы все поняли, как это просто :)

` loadHTML(strtolower($content)); $xpath = new DOMXpath($dom); $body = $xpath->query("//meta[@http-equiv='content-type']/@content"); if($body->length > 0) { list($type, $charset) = explode("charset=", $body->item(0)->nodeValue); $charset = trim($charset); } if(empty($charset)) { $charset = "windows-1251"; } }`

`// Get keywords if(strcasecmp($charset, "UTF-8") != 0) { $content = iconv($charset, "UTF-8", $content); } $content = mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8"); $dom = new DOMDocument(); $dom->loadHTML(mb_strtolower($content, "utf-8")); $xpath = new DOMXpath($dom); $body = $xpath->query("//meta[@name='keywords']/@content"); $keywords_str = ""; if($body->length > 0) { $keywords_str = $body->item($i)->nodeValue; }`

`if(!empty($keywords_str)) { $keywords = explode(",", $keywords_str); if(count($keywords) == 1) { $keywords = explode(" ", $keywords_str); } } } ?> `

---

Source: [https://yvision.kz/post/domxpath-kak-prodvinutyy-parser-ili-moy-quot-eksperiment-quot-78088](https://yvision.kz/post/domxpath-kak-prodvinutyy-parser-ili-moy-quot-eksperiment-quot-78088)