Sla
|
|
« : 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
|
|
« Ответ #1 : 28-07-2010 20:17 » |
|
Сам перенес. Потому как возник вопрос Если у меня кодировка 1251, то нужно ли мне перекодировать в UTF?
и... а не сильно ли это все похоже на trackback?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #2 : 28-07-2010 20:32 » |
|
Слав, кодировка чего и где?
Я так понял, сайт сам должен сообщить ПС новый урл?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #3 : 29-07-2010 06:00 » |
|
$Namesite = 'Твой сайт' как я понял из weblogs'a по сути это title страницы Но сервис Я не спрашивает титл, а только адрес.
Погляжу... что получится
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #4 : 29-07-2010 06:14 » |
|
Интересен факт, что метод Гугля не описан в спецификации.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #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
|
|
« Ответ #6 : 29-07-2010 06:50 » |
|
set_time_limit, как правило, ограничивают. Но думаю, что RPC-сервисы просто обязаны быть быстрыми.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #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
|
|
« Ответ #8 : 29-07-2010 09:41 » |
|
А чем блог от другой формы сайта отличается? Те же страницы...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #9 : 29-07-2010 09:44 » |
|
с одной стороны ничем. но почему-то и у гугля, и у яндекса есть сервис поиска по блогам.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #10 : 29-07-2010 09:45 » |
|
Варианты:
1. Модные словечки == ничего не значит или просто на сайте есть RSS. 2. Большие общественные сайты типа ЖЖ.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #11 : 29-07-2010 09:46 » |
|
pingback отличается от trackback тем, что задача стоит только пнуть Сервис, а трэкбэк, еще и получает контент.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #12 : 29-07-2010 09:50 » |
|
Скажем так. Новостная лента по сути есть блог. При добавлении новости есть необходимость пнуть поисковик на действия, хотя бы чтоб зашел и посмотрел.
Модное слово? Впрочем да. Нездоровая тенденция - клепают сайты визитки на блоговых движках, и даже не удосуживаются изменить шаблоны.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #13 : 29-07-2010 10:34 » |
|
Посмотрел в панели вебмастера на Гугле. Там появилась возможность использовать RSS-каналы, присутствующие на сайте, как дополнительный sitemap.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #14 : 29-07-2010 10:58 » |
|
|
b1.jpg (80.13 Кб - загружено 3554 раз.)
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
RXL
|
|
« Ответ #15 : 29-07-2010 12:08 » |
|
Сперва зайти в "Статистика о подписчиках". Там надо подтвердить по каждому каналу, после оно появится в sitemap.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|
Sla
|
|
« Ответ #17 : 03-08-2010 06:27 » |
|
sitemap поможет поисковику индексировать все страницы - это только информация для поисковика, только тогда когда он ее прочитает. Пинг говорит, что появилась новая страница. Насчет 404-й страницы - не знаю... Особенно если вдруг страница перенесена по какой-либо причине. Яндекс плохо понимает 301 редирект. Впрочем, и гугля тоже, хотя и говорит обратное. Запрет индексации - - это в robots.txt. запретите в robots.txt индексирование страниц, неинтересных пользователям. Например, формы ответа на форуме, статистику посещений, страницы с результатами поиска, сайты-зеркала, документы на нераспространенных в рунете языках;
если некоторые страницы и можно запретить в robots, то остальное непонятно... Запретить страницу с результатом поиска.... А какого хрена поисковик заполняет форму поиска и жмакает submit? Или как тогда поисковик узнает о странице результата поискового запроса?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #18 : 03-08-2010 06:55 » |
|
AAAA.... на календаре 03/08/2010 Яндекс в отпуске или на жаре перегрелся
|
aaa.png (20.98 Кб - загружено 3566 раз.)
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Антон (LogRus)
|
|
« Ответ #19 : 03-08-2010 13:31 » |
|
Sla, а в чём проблема? можешь дать ссылку на ресурс откуда сделан снимок?
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #20 : 03-08-2010 13:48 » |
|
Кстати, сейчас поиском нашел в Яндексе тему (позиция 9!), которую запостил несколько часов назад. Без всяких пингов быстро находят - лишь бы ресурс был активным.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Sla
|
|
« Ответ #21 : 03-08-2010 14:01 » |
|
Антон (LogRus), не могу - это из яндекс вебмастера
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Антон (LogRus)
|
|
« Ответ #22 : 04-08-2010 07:37 » |
|
|
|
|
Записан
|
Странно всё это....
|
|
|
Sla
|
|
« Ответ #23 : 11-08-2010 18:36 » |
|
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|