Окт 14
Как получить кол-во FeedBurner подписчиков, зная домен
Сегодня утром именно такой вопрос стоял. Полазил по API фидбернера, ничего не нашел подобного. Дело в том, что на сайте может быть вообще куча разных каналов, а мне нужно узнать количество подписчиков главной новостной ленты сайта, прожженой ч-з фидбернер.
Полазил по рейтингам блогов – там вообще все тупо спрашивают у юзера адрес фида… лол… зачем делать дополнительное действие, раз фид и так получить можно.
Остановился на таком алгоритме:
- Скачиваем страницу, например http://www.samborsky.com
- Ищем link теги, с атрибутом application/rss+xml
- Получаем полный адрес фида, например, если он указан локально /feed/
- Заходим на полный адрес фида, получаем таким образом адрес редиректа – http://feeds.feedburner.com/samborsky
- Имея на руках полный адрес ленты в фидбернере – получить кол-во подписчиков – дело техники
Привожу кусок класса, кто заметит ошибку, или знает, как сделать лучше пишите.
function feedburner(){
if( !$this->page_loaded ){
$this->domain_source();
}
if( $this->page_loaded ){
$feed = '';
// Найдем RSS фид
preg_match_all('/<link(.+?)\s*\/?\s*>/i',$this->source_code,$out,PREG_SET_ORDER);
foreach( $out as $link ){
$link = strtolower($link[1]);
if( strpos($link,'application/rss+xml') ){
// Если адрес взят в двойные кавычки
if( preg_match('/href="(.+?)"/i',$link,$href) ){
$feed = $href[1];
break;
}
// Если адрес взят в одинарные кавычки
if( preg_match("/href='(.+?)'/i",$link,$href) ){
$feed = $href[1];
break;
}
// Если адрес указан без кавычек
if( preg_match("/href=\s*(.+)\s*/i",$link,$href) ){
$feed = $href[1];
break;
}
}
}
// Получаем полный адрес фида
$url = parse_url($feed);
if( empty($url['host']) ){
$feed = 'http://' . $this->domain . $feed;
}
// Скачиваем фид, получаем реальный адрес
if( $this->get($feed) ){
// Получаем последний урл, на который редиректили
$feed = $this->get_info(CURLINFO_EFFECTIVE_URL);
if( !empty($feed) ){
// Нужно получить название канала
if( preg_match('/feedburner.com\/(.+?)$/i',$feed,$out) ){
$feed = $out[1];
// Делаем запрос на фидбернер
if( $this->https_get('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=' . $feed) ){
echo $this->data;
if( preg_match('/circulation="(\d+?)"/',$this->data,$match) ){
return $match[1];
}
}
}
}
}
}
return 'n/a';
}
———
морские перевозки в Одессе
салон красоты отзывы москва
поселок Золотые ключи Одесса
Другие статьи автора


при этом еще автор блога должен открыть публичную статистику на фидбернере – иначе дергать данные не получится.
Это само собой
в блоге димка, есть сылка на плагин который все это делает.
Жень, а ты не можешь сделать такой сервис у себя на сайте? вбил домен- узнал кол-во подписчиков.
позже сделаю
http://www.blogperfume.com/feed-analysis/ – вот очень простое решение данной проблемы. Считает и кол-во подписчиков и динамику изменений:) Очень красиво.
Макс, а может он считать кол-во подписчиков скажем только по названию домена?
Я нашел там форму
Но в ней нужно ввести именно ID в фидбернере
Эх, сделал бы кто однопиксельными столбцами стату Фида картинкой 16х32 px за последние 30 дней – плагин бы имел успех… Я б себе с удовольствием его поставил
А по фиду плагинов хватает, типа того, что здесь приведен… В Кодексе ВП
Хм, а как сию фичу поставить? просто код вставил в сайдбар, а он ошибку выдает в каждой строке, где есть $this ???
Игорь, это кусок из класса CodeIgniter, я опубликовал его скорее как теоретический материал.
Насчет использования статистики – скоро увидите. этот код часть крупного проекта, который в примерно ноябре выйдет в свет.
Да, действительно, есть такой плагин, и назване ему – Feed Subscriber Stats.
[...] Евгений Самборский описал интересный метод, Как получить кол-во FeedBurner подписчиков, зная домен. [...]
Три регулярки на проверку разных кавычек или их отсутствие можно заменить одной:
if( preg_match("/href=("|\')?(.+)("|\')?( |\/|>)/i",$link,$href) ) {
...
}
Есть определенные причины почему я сделал с использованием трех регулярок.
То, что можно сделать все одной строкой я естественно в курсе.
[...] Как получить кол-во FeedBurner подписчиков, зная домен 14.10.2009 feedburner seobar пузомерки [...]