Knigionline.co » Компьютеры » Яндекс для всех

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

Яндекс для всех
  • Год:
    2007
  • Название:
    Яндекс для всех
  • Автор:
  • Жанр:
  • Язык:
    Русский
  • Издательство:
    БХВ-Петербург
  • Страниц:
    245
  • ISBN:
    978-5-9775-0144-6
  • Рейтинг:
    0 (0 голос)
  • Ваша оценка:
Речь ведется о лидере среди поисковых ресурсов российской части Интернета — Яндексе. Описаны его сервисы для поиска музыкальных произведений, блогов и адресов, товаров и документов и новостей. Проанализированы и сервис для создания и размещения сайтов и почтовый сервис на Народ. ру. Человек, читающий это наполняется знаниями о том, что такое "электронные деньги" и как данной валютой оплатить товар. Обширный интерес уделяется доступным абсолютно для всех программам предназначенным для поиска, которые Яндекс предлагает своим посетителям для поиска даже на своем компьютере, не говоря уже и о поиске на сайтах. На компакт-диске записаны программы Яндекса, описываемые в книге, и дополняющие материалы.
Для людей которые только начинают пользоваться сетью Интернет.

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

print "Content-Type: text/html;charset=utf-8\n\n"; 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>\n\n" 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 => '

); (POST => '

); $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>

Перейти
Наш сайт автоматически запоминает страницу, где вы остановились, вы можете продолжить чтение в любой момент
Оставить комментарий