parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

гребаный UTF feat Parser

agat 09.01.2007 18:09

http://www.parser.ru/forum/?id=56315 - вот тут Азат написал неплохие методы для автоформирования заголовков страниц. Но если ваш сайт на утф - вы нервно курите.

У меня сайт на утф. А заголовки нужны, ибо заказчик жалуется, что его страницы индексируются недостаточно эффективно. Страницы динамические, и, кроме как парсить эх регекспами, я решения пока не вижу. Но вот Парсер их парсить (каламбур...) отказывается.

Задача. Заставить появляться заголовки.
Решение. Написать эти методы на Перл - прогонять через них Парсером, что есть Задача №2. Кто поможет переписать данное в Перл?
@getMetaKeywords[sText][tKeyword;hKeyword;tKey]
$sText[^sText.lower[]]
# удаляем тэги
$sText[^sText.match[<.*?>|&.*?^;][g]{ }]
# выбираем все слова
$tKeyword[^sText.match[([\w\-]+)][g]]
# удаляем слова короче 3-х букв
$tKeyword[^tKeyword.select(^tKeyword.1.length[] > 3)]
# сортируем по длине
^tKeyword.sort(^tKeyword.1.length[])
# собираем уникальные корни слов
$hKeyword[^tKeyword.hash{^tKeyword.1.left(5)}[$.distinct[tables]]]
$tKey[^hKeyword._keys[]]
# сортируем слова по частоте
^tKey.sort($hKeyword.[$tKey.key])[desc]
# отбираем первые 20 слов
$tKey[^table::create[$tKey;$.limit(20)]]
# перечисляем через пробел
$result[^tKey.menu{$hKeyword.[$tKey.key].1}[ ]]

@getMetaDescription[sText][tMatch]
# удаляем тэги
$sText[^sText.match[<.*?>|&.*?^;][g]{ }]
# берём кусок не длиннее 200 знаков
$tMatch[^sText.match[^^(.{1,200}[\.\?!])]]
$result[$tMatch.1]