Читать интересную книгу Яндекс для всех - Абрамзон М. Г.

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 104 105 106 107 108 109 110 111 112 ... 117

Вот интересный пример (листинг 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 "<p>сайт «$host» находится на месте № $found по запросу «$query»</p><p>Попробуйте узнать позицию другого сайта!</p><br/>n";

} elsif (defined $host and $host)

{

print "<p>сайт «$host» находится далее, чем на". $pages*10." месте в выдаче «Яндекса» по запросу «$query»</p><p>Попробуйте узнать позицию другого сайта!</p><br/>n";

}

else

{

print "<p>Узнайте позицию сайта в выдаче «Яндекса» по запросу!</p>";

}

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'/>   Пример: волшебные травы</td>

</tr>

<tr>

<td><label for='host'>?Имя

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

<td><input type='text' name='host' id='query' value='$host_esc'/>   Пример: 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, сумевшего не только пережить последовавший в начале нового века интернет-кризис, но и ставшего одним из лидеров Интернета. Немаловажную роль в этом сыграло и использование им поисковой контекстной рекламы.

Возвращаясь к Яндексу отметим, что различают несколько вариантов размещения рекламных материалов на Яндексе и ресурсах, входящих в его рекламную сеть:

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

динамическое расположение — реклама показывается на определенных местах рекламных площадок, но случайным образом, вне зависимости от того, что ищет на поисковой системе посетитель. Заказчик указывает, сколько раз в сутки должна быть показана его реклама (баннеры или текст), и сколько всего должно быть обеспечено показов. Система вывода рекламы распределяет показ объявления равномерно в течение суток (или того временного интервала, который выбран заказчиком). По своей сути это тоже имиджевая реклама;

1 ... 104 105 106 107 108 109 110 111 112 ... 117
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Яндекс для всех - Абрамзон М. Г..

Оставить комментарий