Чтение онлайн

на главную - закладки

Жанры

Яндекс для всех
Шрифт:

Сервер XML-поиска Яндекса принимает поисковые запросы методом POST или методом GET по адресу http://xmlsearch.yandex.ru/xmlsearch/.Во входном потоке должен быть передан поисковый запрос в формате XML. Есть некоторые ограничения на формирование запроса и результатов: групп на странице не более 20, документов в группе не более 3, пассажей в документе не более 5, длина запроса в символах не более 150, число страниц при листании не более 100.

Поисковый запрос состоит из следующих элементов (табл. 10.4).

Два из перечисленных элементов имеют свою структуру. Это элементы сортировки и группировки.

Сортировка может выполняться по одному из двух доступных в Яндекс XML параметров — по релевантности запросу или по времени модификации. Но при этом следует учитывать еще одну особенность формирования результатов. Все они вначале подразделяются на три группы, соответствующие выполнению условий поиска: "совпадение фразы", "наличие всех слов", "отсутствие некоторых слов". И вот уже внутри этих групп происходит сортировка по релевантности или по времени модификации.

Группировка позволяет получать данные в сжатом виде. Например, если вы ищете сайты, подпадающие под определенные признаки, может оказаться полезным найти не сами сайты, а категории Яндекс. Каталога, в которых они находятся. Упорядочивание групп происходит по их лучшим представителям. Например, при сортировке по дате и одновременной группировке по сайтам в расчет принимается самый свежий документ сайта.

В отличие от сортировки, группировать результаты можно по нескольким признакам, для чего в запросе необходимо их все перечислить. На Яндексе поддерживается три варианта группировки:

"плоский" способ — каждая группа состоит ровно из одного документа, используется по умолчанию, иначе называется группировкой по сайтам;

"глубокий" способ — группировка выполняется по самому нижнему уровню иерархии или по сайтам. Еще ее называют иерархической группировкой по регионам каталога Яндекса;

"широкий" способ — обеспечивает возможность группирования по категориям заданного уровня в нужной ветке иерархии; ветка задается при помощи номера узла. Также называется группировкой по тематическим рубрикам каталога.

Разобравшись с элементами запроса, можно попытаться его составить. Но прежде, чем запускать его в работу, сформированный XML-запрос следует проверить. Для этого можно воспользоваться либо формой на Яндексе http://xml.yandex.ru/request_example.xml, либо проверить согласно формальной схеме XML-запроса Яндекса ( http://xml.yandex.ru/request.xs). С ее помощью при наличии XML-парсера, поддерживающего валидацию по схеме, вы сможете проверить корректность своих запросов (листинг 10.6).

Листинг 10.6. Пример запроса, размещенный на Яндексе для тестирования

<?xml version="1.0" encoding="windows-1251"?> <request>

<query>yandex</query> <groupings> <groupby attr="d" mode="deep" groups-on-page="10" docs-in-group="1" /> </groupings> </request>

Обработка результата поиска

В ответ на запрос Яндекс возвращает ответ, состоящий из элементов <request>и <response>(табл. 10.5).

Принятый ответ необходимо будет обработать вашей программой и вывести в виде страницы сайта.

Специальные возможности
Поиск по своему сайту

Мы уже говорили о том, что с помощью Яндекс. XML можно искать не только на Яндексе, но и на своем сайте. Сделать такой поиск можно следующим образом. Составьте запрос и дополните его расширенным условием поиска <<. Выглядеть это будет так:

{ваш запрос} << host="www.my_rsite.ru"

При этом есть несколько правил:

группировка по сайту должна быть "плоской";

специальные символы в запросе нужно менять на escape-последовательности.

Приведенный здесь пример в этом случае будет выглядеть следующим образом:

{ваш запрос} &lt;&lt; host=&quot; www.my_rsite.ru&quot;

Подробный пример на языке Perl приведен по ссылке http://xml.yandex.ru/examples.xml?id=420129.

Ограничение поиска регионом или разделом каталога

Вы можете сформировать запрос, ограничив поиск определенным географическим регионом или разделом Яндекс. Каталога. Для этого потребуется использовать коды, которые можно получить по ссылкам:

коды регионов — http://search.yaca.yandex.ru/geo.c2n;

коды разделов каталога — http://search.yaca.yandex.ru/cat.c2n.

Например, если вы ищете слона в Казани (код 43), вам потребуется создать следующий запрос:

<query>слон &lt;&lt; cat=(11000043)</query>

Правильная кодировка в запросе

Кодировка при поиске через Яндекс XML задается в первой строке отправляемого запроса:

<?xml version="1.0" encoding="windows-1251"?>

А вот результаты поиска всегда отдаются в кодировке UTF-8, для преобразования которой в любую другую потребуется дополнительная библиотека или модуль, например, Convert::Cyrillic ( http://www.neystadt.org/cyrillic/ Convert-Cyrillic.htm).

Поделиться:
Популярные книги

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Тринадцатый XIII

NikL
13. Видящий смерть
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Тринадцатый XIII

Я до сих пор царь. Книга XXXII

Дрейк Сириус
32. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я до сих пор царь. Книга XXXII

Неудержимый. Книга XXXVII

Боярский Андрей
37. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXXVII

Неучтенный элемент. Том 10

NikL
10. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 10

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Кодекс Императора

Сапфир Олег
1. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
4.25
рейтинг книги
Кодекс Императора

Неофит

Листратов Валерий
3. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неофит

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Феодал. Том 2

Рэд Илья
2. Диктатура Параметров
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Феодал. Том 2

Место для битвы

Мазин Александр Владимирович
2. Варяг
Фантастика:
альтернативная история
9.15
рейтинг книги
Место для битвы

Локки 6. Потомок бога

Решетов Евгений Валерьевич
6. Локки
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Локки 6. Потомок бога

Бастард

Майерс Александр
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард

Глубокий космос

Вайс Александр
9. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Глубокий космос