Как сделать парсер description keywords

Статус
В этой теме нельзя размещать новые ответы.

lordBlack

Мой дом здесь!
Регистрация
29 Ноя 2007
Сообщения
623
Реакции
267
замучалсо...
Как сделать парсер description keywords любого сайта?

вообщем для title решение нашел:
PHP:
<?php
//Подключаем фаил с реализацией парсера. Этот файл находиться в архиве на офсайте
require 'simplehtmldom/simple_html_dom.php';
//Открываем html документ 
$html = file_get_html('http://сайт.ру.ru');
//используя при этом функцию find. Данная функция возвращает массив найденыых элементов
//Так если нужно получить все заголовки h2 с классом art-PostHeader, то сделать это можно так 
foreach ($html->find('title') as $g) 
  echo $g->plaintext . '
';  
?>
библиотеки взяты тут:


но парсится только именно тег ТИТЛ
а я хочу description keywords и т.д.
сложностей три:
1. декрипшн и кейвордс не отдельный тег, а метатег
<meta name="description" content="Описаловы" />
2. часто или даже очень часто двойные кавычки бывают одинарными типа
<meta name='description' content='описаловы' />
3. кодировко utf8, cp1251, koi8... но тут я вроде решение нашел унифицирования вывода...


помогите парсер дописать парни.... или есть более простое решение мейби?
 
Зачем тебе библиотеки для парсера?
пиши на чистом пхп, используя

preg_match
preg_match_all

примеров таких простых парсеров в сети полно
 
Зачем тебе библиотеки для парсера?
пиши на чистом пхп, используя
preg_match
preg_match_all
примеров таких простых парсеров в сети полно

пример можно?


НАшел, СПасибо!
 
Код:
// Find all meta 
foreach($html->find('meta ') as $element)
     if ($element->name == 'description')
       echo $element->content . '<br>';

как-то так
 
Ну а как насчет команды php:
get_meta_tags (string $filename, int $use_include_path=false);
:)
 
только не команды а функции

Код:
<?php
// Assuming the above tags are at www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Notice how the keys are all lowercase now, and
// how . was replaced by _ in the key.
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>
 
теперь вопрос)
разные сайты имеют разную кодировку)

как сделать чтоб парсер дергал в разных кодировках а выводил в одной, скажем UTF-8 ?
 
1 определить кодировку
что-то типа
Код:
$subject = "abcdefывапывапыв"; // Ваша строка
$pattern = '/[а-яА-Я]+/'; // шаблон
preg_match($pattern, $subject, $matches);
if ( sizeof($matches) >0 ) {
//есть кириллица
}
2 перекодировать в utf-8
Код:
echo iconv('Windows-1251', 'UTF-8//IGNORE', $string);
 
можно и не определяя кодировку
PHP:
$str = mb_convert_encoding($str, "UTF-8", "auto");

 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху