Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Пингуем Яндекс и Гугль  (Прочитано 51412 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« : 28-07-2010 19:47 » 

ну вот гляди...
https://forum.shelek.ru/index.php/topic,23821.0.html
Кто-то что-то сказал? Ладно. Это только новостная лента.
А не сказал, потому как не нужно.
Я после этой статьи пытался найти что-то в реализации.
И вот сегодня.... читаю про пинг гугля и яндекса.
Оказывается....
описан протокол Weblogs.Com XML-RPC interface
Описаны API  и создан сервис у Яндекса
Описан API Google http://www.google.com/help/blogsearch/pinging_API.html
а вот и реализация

Код:
require('IXR_Library.inc.php');
// Что посылаем в пингах
// Название сайта
   $Namesite = 'Твой сайт';
// Адрес сайта
   $URLsite = 'http://мой.сайт/';
// Адрес страницы, которая изменилась (например)
   $URLpage = 'http://мой.сайт/новыйпост');

/**
* Яндекс.Блоги - почему блоги мне совсем не понятно
*/
   $pingYA = new IXR_Client('ping.blogs.yandex.ru', '/RPC2');

// Посылаем challange-запрос
   if (!$pingYA->query('weblogUpdates.ping', $Namesite, $URLsite, $URLpage)) {
      echo 'Ошибка ping-запроса [' . $pingYA->getErrorCode().'] '.$pingYA->getErrorMessage();
   } else {
        echo 'Послан ping Яндексу';
   }

/**
* Google - опять почему-то блоги
*/
   $pingGoogle = new IXR_Client('blogsearch.google.com', '/ping/RPC2');

// Посылаем challange-запрос
   if (!$pingGoogle->query('weblogUpdates.extendedPing', $Namesite, $URLsite, $URLpage)) {
      echo 'Ошибка ping-запроса [' . $pingGoogle->getErrorCode().'] '.$pingGoogle->getErrorMessage();
   } else {
       echo 'Послан ping Google';
   }

И сам класс...
http://scripts.incutio.com/xmlrpc/IXR_Library.inc.txt

Да... и как я понял, что во многих блоговых движках это уже встроенная штука (кто-нибудь из блогеров об этом знает?). Приведенный пример для "велосипедистов".

зы...Почему здесь? А где? Улыбаюсь

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

зззы. Только б не забыть, что это я написал здесь Улыбаюсь

« Последнее редактирование: 28-07-2010 20:13 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 28-07-2010 20:17 » 

Сам перенес.
Потому как возник вопрос
Если у меня кодировка 1251, то нужно ли мне перекодировать в UTF?

и... а не сильно ли это все похоже на trackback?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 28-07-2010 20:32 » 

Слав, кодировка чего и где?

Я так понял, сайт сам должен сообщить ПС новый урл?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-07-2010 06:00 » 

$Namesite = 'Твой сайт'
как я понял из weblogs'a по сути это title страницы
Но сервис Я не спрашивает титл, а только адрес.

Погляжу... что получится
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 29-07-2010 06:14 » 

Интересен факт, что метод Гугля не описан в спецификации.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 29-07-2010 06:41 » 

Цитата
weblogsUpdates.ping (weblogname, weblogurl, changesurl=weblogurl, xmlurl=weblogfeedurl, categoryname="none") returns struct;
Код:
POST /RPC2 HTTP/1.1
Host: ping.blogs.yandex.ru
Content-Type: text/xml
Content-length: 318

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value>Лучший подарок — это книга</value>
        </param>
        <param>
            <value>http://clubs.ya.ru/company/rss/posts.xml</value>
        </param>
    </params>
</methodCall>
Код:
function ping ($url, $blogname, $blogurl)
{

$tb_send='<?xml version="1.0"?>
<methodCall>
    <methodName>weblogUpdates.ping</methodName>
    <params>
        <param>
            <value>'.$blogname.'</value>
        </param>
        <param>
            <value>'.$blogurl.'</value>
        </param>
    </params>
</methodCall>';

    $target=parse_url($url);

    $tb_sock = fsockopen($target["host"],  80);
    fputs($tb_sock, "POST " . $target["path"] . $target["query"] . " HTTP/1.1\r\n");
    fputs($tb_sock, "User-Agent: NoAgent\r\n");
    fputs($tb_sock, "Host: " . $target["host"] . "\r\n");
    fputs($tb_sock, "Content-Type: text/xml\r\n");
    fputs($tb_sock, "Content-length: " . strlen($tb_send) . "\r\n");
    fputs($tb_sock, "Connection: close\r\n\r\n");
    fputs($tb_sock, $tb_send);
    while (!feof($tb_sock)) {
        $response .= fgets($tb_sock, 128);
    }
    fclose($tb_sock);
//еще не хватало парсить XML :)
    strpos($response, '<error>0</error>') ? $return = true : $return = false;
    return $return;

}

ping ("http://ping.blogs.yandex.ru/RPC2", $title, $newURL);

Возможно, нужно подобрать время выполнения скрипта
set_time_limit(0);
« Последнее редактирование: 29-07-2010 06:43 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 29-07-2010 06:50 » 

set_time_limit, как правило, ограничивают. Но думаю, что RPC-сервисы просто обязаны быть быстрыми.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 29-07-2010 07:06 » 

Так как это чистый велосипед
Цитата
#По каким блогам ведется поиск?

Поиск по блогам должен охватывать все блоги, где есть канал сайта (RSS или Atom). Сюда относятся блоги не только из системы Blogger, но и изо всех прочих систем.


#Как включить блог в результаты поиска?

Если ваш блог публикует канал сайта в каком-нибудь формате и автоматически связывается со службой обновления (например, Google Blog Search Pinging Service), то мы, скорее всего, найдем его и внесем в списки. Кроме того, скоро мы предоставим форму для внесения блогов в индекс вручную, если они не были найдены автоматически. Следите за новостями, мы будем держать вас в курсе дела.
Я иногда тихо ненавижу Google с такими вопросами/ответами.


под Google

Цитата
weblogsUpdates.ping (weblogname, weblogurl, changesurl=weblogurl, xmlurl=weblogfeedurl, categoryname="none") returns struct;
Код:
POST /RPC2 HTTP/1.0
User-Agent: request
Host: blogsearch.google.com
Content-Type: text/xml
Content-length: 447

<?xml version="1.0"?>
<methodCall>
  <methodName>weblogUpdates.extendedPing</methodName>
  <params>
    <param>
      <value>Official Google Blog</value>
    </param>
    <param>
      <value>http://googleblog.blogspot.com/</value>
    </param>
    <param>
      <value>http://googleblog.blogspot.com/</value>
    </param>
    <param>
      <value>http://googleblog.blogspot.com/atom.xml</value>
    </param>
  </params>
</methodCall>

Код:
function ping ($url, $blogname, $blogurl)
{

$tb_send='<?xml version="1.0"?>
<methodCall>
    <methodName>weblogUpdates.extendedPing</methodName>
    <params>
        <param>
            <value>'.$blogname.'</value>
        </param>
        <param>
            <value>'.$blogurl.'</value>
        </param>
    </params>
</methodCall>';

    $target=parse_url($url);

    $tb_sock = fsockopen($target["host"],  80);
    fputs($tb_sock, "POST " . $target["path"] . $target["query"] . " HTTP/1.1\r\n");
    fputs($tb_sock, "User-Agent: NoAgent\r\n");
    fputs($tb_sock, "Host: " . $target["host"] . "\r\n");
    fputs($tb_sock, "Content-Type: text/xml\r\n");
    fputs($tb_sock, "Content-length: " . strlen($tb_send) . "\r\n");
    fputs($tb_sock, "Connection: close\r\n\r\n");
    fputs($tb_sock, $tb_send);
    while (!feof($tb_sock)) {
        $response .= fgets($tb_sock, 128);
    }
    fclose($tb_sock);
    strpos($response, '<error>0</error>') ? $return = true : $return = false;
    return $return;

}

ping ("http://blogsearch.google.com", $TITLE, $URLPATH);

Если действовать по FAQ гугля, то надо еще указывать и адрес фида, ибо без него новый блог не найдется.
Зато, сказано, что не только можно блоги пинговать, а все что есть с фидом.
« Последнее редактирование: 29-07-2010 07:09 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 29-07-2010 09:41 » 

А чем блог от другой формы сайта отличается? Те же страницы...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 29-07-2010 09:44 » 

с одной стороны ничем.
но почему-то и у гугля, и у яндекса  есть сервис поиска по блогам.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 29-07-2010 09:45 » 

Варианты:

1. Модные словечки == ничего не значит или просто на сайте есть RSS.
2. Большие общественные сайты типа ЖЖ.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 29-07-2010 09:46 » 

pingback отличается от trackback тем, что задача стоит только пнуть Сервис, а трэкбэк, еще и получает контент.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 29-07-2010 09:50 » 

Скажем так.
Новостная лента по сути есть блог. При добавлении новости есть необходимость пнуть поисковик на действия, хотя бы чтоб зашел и посмотрел.

Модное слово? Впрочем да. Нездоровая тенденция - клепают сайты визитки на блоговых движках, и даже не удосуживаются изменить шаблоны.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 29-07-2010 10:34 » 

Посмотрел в панели вебмастера на Гугле. Там появилась возможность использовать RSS-каналы, присутствующие на сайте, как дополнительный sitemap.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 29-07-2010 10:58 » 

RXL, в каком месте

* b1.jpg (80.13 Кб - загружено 3557 раз.)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 29-07-2010 12:08 » 

Сперва зайти в "Статистика о подписчиках". Там надо подтвердить по каждому каналу, после оно появится в sitemap.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #16 : 03-08-2010 04:39 » 

Sla, а смысл этих танцев с бубном только в ускорении индексации?

Интересно пинг блогов будет попадать в выдачу больного поиска?
А как же вот это http://help.yandex.ru/webmaster/?id=995325 ?
Записан

Странно всё это....
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 03-08-2010 06:27 » 

sitemap поможет поисковику индексировать все страницы - это только информация для поисковика, только тогда когда он ее прочитает.
Пинг говорит, что появилась новая страница.
Насчет 404-й страницы - не знаю... Особенно если вдруг страница перенесена по какой-либо причине. Яндекс плохо понимает 301 редирект. Впрочем, и гугля тоже, хотя и говорит обратное.
Запрет индексации - - это в robots.txt.
Цитата
запретите в robots.txt индексирование страниц, неинтересных пользователям. Например, формы ответа на форуме, статистику посещений, страницы с результатами поиска, сайты-зеркала, документы на нераспространенных в рунете языках;
если некоторые страницы и можно запретить в robots, то остальное непонятно...
Запретить страницу с результатом поиска.... А какого хрена поисковик заполняет форму поиска и жмакает submit?
Или как тогда поисковик узнает о странице результата поискового запроса?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #18 : 03-08-2010 06:55 » 

AAAA....
на календаре 03/08/2010


Яндекс в отпуске или на жаре перегрелся

* aaa.png (20.98 Кб - загружено 3569 раз.)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #19 : 03-08-2010 13:31 » 

Sla, а в чём проблема? можешь дать ссылку на ресурс откуда сделан снимок?
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 03-08-2010 13:48 » 

Кстати, сейчас поиском нашел в Яндексе тему (позиция 9!), которую запостил несколько часов назад. Без всяких пингов быстро находят - лишь бы ресурс был активным.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 03-08-2010 14:01 » 

Антон (LogRus), не могу - это из яндекс вебмастера
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #22 : 04-08-2010 07:37 » 

что касается времи индексации Яндексом: http://www.osp.ru/news/2010/0709/13002970/
Записан

Странно всё это....
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 11-08-2010 18:36 » 

а вот и сервис пинга от google
http://blogsearch.google.com/ping
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines