Старая версия xmlhack.ru


[Веб-сервисы][Тусовка]  Яндекс.XML
  14.11.03 Паращенко Олег

Новый проект Яндекс.XML позволяет использовать XML для работы с поисковой машиной Яндекса.

Так этот сервис описывают авторы:

Яндекс.XML — это уникальная возможность делать автоматические поисковые запросы к Яндексу и публиковать его ответы у себя на сайте в своем дизайне и со своими настройками.

В связи с открытием проекта «XML» Яндекс объявляет конкурсы в двух номинациях:

Победители (по три конкурсанта в каждой номинации) получат призы-сувениры от Яндекса и упоминание своих имен в пресс-релизе. Лучшие работы будут размещены на страницах проекта, а их авторы приглашены в Яндекс на собеседование о работе.

Помимо документации на сайте также размещены «интересные примеры». Три игры («Контрасты», «Отчество» и «Какого оно цвета») помогут весело провести время, а определение позиции сайта в выдаче сделает легче жизнь маркетологов. Два примера дизайна включают ностальгический вариант (старый дизайн Яндекса) и лаконичный (минимум элементов).

Примеры написаны на языке Perl с использованим модулей XML::XPath и LWP::UserAgent. Из-за этого их будет сложно запустить на некоторых системах. Поэтому мы написали свой пример поиска по слову «XML», работающий в любом современном unix'e.

XML-запрос (файл request.xml):

<?xml version='1.0' encoding='utf-8'?>
<request>
  <query>xml</query>
  <maxpassages>1</maxpassages>
</request>

Выполнение запроса:

(
echo POST /xmlsearch/ HTTP/1.1
echo Host: xmlsearch.yandex.ru
echo Content-type: text/plain
echo Content-length: `stat -c '%s' request.xml`
echo
cat request.xml
) | netcat xmlsearch.yandex.ru 80

После регистрации своего IP в системе мы получили ответ на поисковый запрос. Он выглядит так (несколько изменён для лучшего восприятия):

<yandexsearch version="1.0">
  <request>
    <query>xml</query>
    <page>0</page>
    <sortby order="descending" priority="yes">rlv</sortby>
    <maxpassages>2</maxpassages>
    <groupings>
      <groupby attr="" mode="flat" groups-on-page="10" docs-in-group="1"
          curcateg="-1"/>
    </groupings>
  </request>
  <response date="20031114T044732">
    <reqid>215578623</reqid>    <wordstat>xml: 1563361</wordstat>
    <found priority="phrase">0</found>
    <found priority="strict">508550</found>
    <found priority="all">508550</found>
    <results>
      <grouping attr="" mode="flat" groups-on-page="10" docs-in-group="1">
        <found priority="phrase">0</found>
        <found priority="strict">508550</found>
        <found priority="all">508550</found>
        <page first="1" last="10">0</page>
...
<group>
<doccount>1</doccount>
<relevance priority="strict">57628</relevance>
 <doc>
  <relevance priority="strict">57628</relevance>
  <url>http://www.xmlhack.ru/</url>
  <title>Hовости <hlword priority="strict">XML</hlword>
      и ресурсы для разработчиков на xmlhack.ru</title>
  <headline>Hовости <hlword priority="strict">XML</hlword>
      и ресурсы для разработчиков на xmlhack.ru</headline>
  <modtime>20031001T161849</modtime>
  <size>7654</size>
  <charset>KOI8-R</charset>
  <passages>
   <passage>В ней описывается синтаксис спецификаций
   &amp;quot;Подпись <hlword priority="strict">XML</hlword>&amp;quot; и
   &amp;quot;Шифрование <hlword priority="strict">XML</hlword>&amp;quot;,
   а также поясняется, как применять технологии подписи и ...
   </passage>
  </passages>
 </doc>
</group>
...
</grouping>
</results>
</response>
</yandexsearch>