# HTML-парсер в DataparkSearch

## Tag-парсер

Tag-парсер понимает тэги в следующей нотации:

- < ... parameter=value ... >

- < ... parameter="value" ... >

- < ... parameter='value' ... >

## Специальные символы

indexer понимает следующие специальные символы HTML:

- &lt; &gt; &amp; &nbsp; &quot;

- Все ссылки на символы, принятые в HTML-4: &auml; &uuml; и др.

- Символы с использованием Unicode: &#234;

## META-тэги

В настоящий момент HTML-парсер обрабатывает специальным образом следующие META-тэги.

Замечание: `<META "NAME">` обрабатывается так же, как и `<META "HTTP-EQUIV">`

- `<META NAME="Content-Type" Content="text/html; charset=xxxx">` Этот тэг используется для определения кодировки документа, если она не была указана в заголовке `Content-type` HTTP-ответа.

- `<META NAME="REFRESH" Content="5; URL=http://www.somewhere.com">` URL, указанный в параметре, будет поставлен в очередь на индексацию.

- `<META NAME="Keywords" Content="xxx">`

- `<META NAME="Description" Content="xxx">`

- `<META NAME="Robots" Content="xxx">`, где Content содержит список из следующий ключевых слов, разделенных запятой: `ALL, NONE, INDEX, NOINDEX, FOLLOW, NOFOLLOW, NOARCHIVE`.

- `<META NAME="DP.PopRank" Content="xxx">` где значение Content - вещественное число. Этот тэг используется для задания начального значения PopularityRank для страницы.

## Ссылки

HTML-парсер распознает гипертекстовые ссылки следующих типов:

- <A HREF="xxx">

- <IMG SRC="xxx">

- <LINK HREF="xxx">

- <FRAME SRC="xxx">

- <AREA HREF="xxx">

- <BASE HREF="xxx">

  Если <BASE HREF> содержит некорректно сформированный URL, то для формирования относительных ссылок будет использовано текущее расположение документа.

## Комментарии

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

- Текст между <!-- .... --> считается HTML-комментарием.

- Текст между тэгами <!--UdmComment--> .... <!--/UdmComment--> становится невидимым для индексации.

- Также, предусмотрено использование <NOINDEX> ... </NOINDEX> в качестве синонимов для <!--UdmComment--> и <!--/UdmComment-->

- Для совместимости с ASPSeek, <!--noindex--> ... <!--/noindex--> также являются синонимами для <!--UdmComment--> и <!--/UdmComment-->

## Шаблоны для индексирования

Если вам нужно индексировать не всю страницу целиком, например, чтобы исключить навигацию, рекламу и т.п., вы можете использовать команду `BodyPattern` чтобы указать шаблон для извлечения контента для индексирования. Например:

    BodyPattern "<!--content-->(.*)<!--/content-->" "$1"

этот шаблон будут извлекать контент между двумя специальными комментариями, и только этот контен будет проиндексирован для этой страницы.

Вы можете задать несколько команд `BodyPattern`, но только первая по порядку подходящая будет применена к странице. Эти команды пытаются примениться к каждой индексируемой странице. Осторожно, большое число таких команд может замедлить скорость индексирования.