Kniga-Online.club

М. Абрамзон - Яндекс для всех

Читать бесплатно М. Абрамзон - Яндекс для всех. Жанр: Интернет издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

(заповедник Эйн-Геди) && (длиннохвостый скворец)

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

Возможности XML-РїРѕРёСЃРєР° оказались востребованными. РС… использует, например, такая поисковая система, как Nigma.ru, визуальная поисковая система Quintura, система "Телеграф" — РїРѕРёСЃРє РїРѕ белорусским сайтам Рё РґСЂСѓРіРёРµ поисковые системы.

РљСЂРѕРјРµ того, РЅР° РѕСЃРЅРѕРІРµ этого варианта РїРѕРёСЃРєР° разработано несколько простых, РЅРѕ весьма занятных РёРіСЂ, например, "Отчество", РІ которой РїРѕ имени Рё фамилии, РІРІРѕРґРёРјРѕР№ пользователем, ищется наиболее часто встречающееся для этой пары данных отчество. Рли РёРіСЂР° "Какого РѕРЅРѕ цвета", РІ которой для введенного названия предмета подыскивается наиболее часто употребляемый СЃ РЅРёРј цвет. Почему-то тыкву большинство пользователей Рнтернета связывают СЃ черным цветом, РЅРѕ РІРѕС‚ огурец точно оказался зеленым.

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

Вот интересный пример (листинг 10.7), который вы можете разместить на своем сайте (при условии, что ваш сайт не является коммерческим).

Листинг 10.7. Узнай место сайта в выдаче

#!/usr/bin/perl — w — Ilib use strict;

# модули для получения информации из XML и доступа к

# веб-ресурсам, соответственно use XML::XPath;

use LWP::UserAgent;

# верхняя и нижняя части страницы require"./page-template.pl";

# библиотека функций. Например, для обработки полей присланной

# формы

require"./xml-lib.pl";

print "Content-Type: text/html;charset=utf-8nn"; print &header;

# обработка полей формы my %params = &parse_form;

my $host = $params {'host'}; my $query = $params {'query'}; my $query_esc = xmlescape($query); my $host_esc = xmlescape($host);

$host =~ s[Ahttp://|www.][];

# готовим запрос

my $ua = LWP::UserAgent->new;

$ua->agent("Bond, James Bond/0.07"); my $exit = 1;

$exit = 0 if $ENV{'REQUEST_METHOD'} eq 'POST'; my $reqid = undef; my $page = 0;

my $found = 0; my $pages = 20;

print "<table width='100В %'><tr><td width='16В %'/><td>";

# мы должны получить место сервера в выдаче по некоему запросу.

# делаем запрос по десять ссылок на страницу и запрашиваем 50

# страниц. При нахождении сервера останавливаемся и выдаем его

# место в выдаче

while (not $exit and $page < $pages and $host)

{

my $reqid_tag = '';

$reqid_tag = " <reqid>$reqid</reqid>nn" if (defined $reqid and $reqid);

# XML запрос

my $doc = <<DOC;

<?xml version='1.0' encoding='utf-8'?>

<request>

<query>$query_esc</query>

<page>$page</page>

$reqid_tag

<maxpassages>0</maxpassages>

<groupings>

<groupby attr='d' mode='deep' groups-on-page='10' docs-in-group='1' curcateg='-1'/>

</groupings>

</request>

DOC

my $req = HTTP::Request — > new

# (POST => 'http://xmlsearch.yandex.ru/cgi-bin/xmlsearch.pl'); (POST => 'http://xmlsearch.yandex.ru/cgi-bin/xmlsearch.pl'); $req — > content_type ('application/xml');

$req — > content ("$doc");

# отправляем запрос

my $response = $ua — > request ($req); if ($response->is_success)

{

#print $response — > content;

my $doc = XML::XPath — > new (xml => $response — > content);

# пробуем получить ошибку

my $error = $doc — > findvalue ('/yandexsearch/response/error'); if ("$error")

{

print "Возникла следующая ошибка: ", $error, "<br/>n";

$exit = 1; last;

}

$reqid = $doc — > findvalue ('/yandexsearch/response/reqid'); my $pos = 1;

my @nodes = $doc — > findnodes ('/yandexsearch/response/results/grouping/group/doc/url');

foreach (@nodes)

{

# если URL начинается с имени хоста, выходим из цикла if ($_ — > string_value =~ m^http: //(www.)?$host/i)

{

$found = $pos + $page * 10;

$exit = 1; last;

}

$pos++;

}

$page++;

}

else

{

print "внутренняя ошибка сервера^";

$exit = 1;

}

}

# если что-то найдено, то выводим результат if ($found)

{

print "

сайт &laquo;$host&raquo; находится на месте № $found по запросу &laquo;$query&raquo;

Попробуйте узнать позицию другого сайта!

<br/>n";

} elsif (defined $host and $host)

{

print "

сайт &laquo;$host&raquo; находится далее, чем на". $pages*10." месте в выдаче &laquo;Яндекса&raquo; по запросу &laquo;$query&raquo;

Попробуйте узнать позицию другого сайта!

<br/>n";

}

else

{

print "

Узнайте позицию сайта в выдаче &laquo;Яндекса&raquo; по запросу!

";

}

print "</td></tr></table>";

# выводим форму с запросом. print <<FOKM;

<form method='POST' accept-charset='utf-8'>

<table width='100В %'>

<tr>

<td width="16%"/>

<td width="75%">

<table>

<tr>

<td><label for='query'>Запрос:</label></td>

<td><input type='text' name='query' id='query' value='$query_esc'/> &nbsp; Пример: волшебные травы</td>

</tr>

<tr>

<td><label for='host'>?РРјСЏ

сервера:</label></td>

<td><input type='text' name='host' id='query' value='$host_esc'/> &nbsp; Пример: narcom.ru</td>

</tr>

<tr>

<td/>

<td><input type="submit"

value="?? скать!"/></td>

</tr>

</table>

</td>

<td width="9%">

</tr>

</table>

</form>

FORM

# дописываем html

print &footer;

10.3. Яндекс как рекламная площадка

Р’ том, что реклама — двигатель торговли, что реклама РїСЂРёРЅРѕСЃРёС‚ прибыль владельцам площадок, РіРґРµ РѕРЅР° размещается, убеждать РЅРёРєРѕРіРѕ РЅРµ надо. Как РЅРµ надо убеждать Рё РІ том, что рекламу желательно размещать РЅР° тематических площадках, РіРґРµ ее содержание совпадает СЃ представленной РЅР° рекламной площадке РёРЅРѕР№ информацией. (Р’СЂСЏРґ ли реклама даров РјРѕСЂСЏ будет более уместна РЅР° сайте, посвященном альпинизму, нежели РЅР° сайте, приглашающем РІ РјРѕСЂСЃРєРёРµ РєСЂСѓРёР·С‹.) Р’РѕС‚ Рё стараются размещать рекламу товаров РЅР° тематических сайтах, РіРґРµ вероятность ее целевого попадания значительно выше. РќРѕ особенность Рнтернета заключается РІ том, что наиболее посещаемыми проектами являются РЅРµ тематические сайты, Р° поисковые.

Впервые эта особенность РїСЂРё размещении рекламы была учтена поисковым сервисом Infoseek, который еще РІ 1994 РіРѕРґСѓ, РІСЃРєРѕСЂРµ после своего создания, стал показывать баннерную рекламу РІ зависимости РѕС‚ запросов, задаваемых пользователями. Спустя четыре РіРѕРґР° такой СЃРїРѕСЃРѕР± рекламы был опробован Рё РІ Р РѕСЃСЃРёРё, Р° первопроходцем стал Яндекс. Это решение оказалось абсолютно верным, что подтвердил спустя несколько лет взлет РїРѕРёСЃРєРѕРІРёРєР° Google, сумевшего РЅРµ только пережить последовавший РІ начале РЅРѕРІРѕРіРѕ века интернет-РєСЂРёР·РёСЃ, РЅРѕ Рё ставшего РѕРґРЅРёРј РёР· лидеров Рнтернета. Немаловажную роль РІ этом сыграло Рё использование РёРј РїРѕРёСЃРєРѕРІРѕР№ контекстной рекламы.

Перейти на страницу:

М. Абрамзон читать все книги автора по порядку

М. Абрамзон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Яндекс для всех отзывы

Отзывы читателей о книге Яндекс для всех, автор: М. Абрамзон. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*