Ещё один парсер счетчика feedburner | Makarou.com - когда сайты превращаются в бизнес

Ещё один парсер счетчика feedburner

Ещё один парсер счетчика feedburnerДобрый день, друзья! Сегодня я хочу показать еще один способ, как спарсить количество подписчиков по счетчику feedburner. Совсем недавно я рассказывал про способ парсинга с помощью регулярного выражения, сегодня мы уберем их подальше и будем пользоваться только SimpleXML. Напомню, что этот парсер будет работать только в PHP5.

И так, приступим!

В прошлый раз, когда мы писали парсер, я немного не понял, в каком формате мы подгружали данные. Оказывается, данные к нам приходили в xml формате, по которым можно с легкостью пройтись с помощью SimpleXML.

Для начала нам надо получить содержимое страницы с нашими данными (с количеством подписчиков). В этом деле нам поможет функция simplexml_load_file. Как работает эта функция, я писал тут. В качестве параметра мы будет передавать API ссылку с именем нашего фида (RSS канала).

Пример получения содержимого:

$feed='sosnovskij';
$file=simplexml_load_file('http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='.$feed);

Теперь, когда мы получили содержимое, мы можем пройтись по нему и получить нужное нам значение.

Пример содержимого:

<rsp stat="ok">
<feed id="hg8l3t9rhgh54ajv94gunpg60s" uri="sosnovskij">
<entry date="2010-06-22" circulation="1273" hits="1136" reach="253" />
</feed>
</rsp>

Как видно из примера нам нужно получить значение атрибута circulation, который принадлежит объекту entry.

Для того чтобы получить содержимое этого атрибута, мы просто обратимся к нему, идя по дереву всего документа.

Пример получения значения:

$pod = $file->feed->entry['circulation'];

Полный код – парсер счетчика feedburner:

$feed='sosnovskij';
$file=simplexml_load_file('http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri='.$feed);
$pod = $file->feed->entry['circulation'];
echo 'Подписчиков:'.$pod;

Посмотреть – demo.

Вот и всё дорогие друзья, очень просто и удобнее чем использовать регулярные выражения. Примерно также мы будем парсить по-новому значение alexa traffic rank. Но об этом в пятницу! ;)

php

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через:
  1. Mareg
    03 Авг 2010 19:55 | #1

    Если бы Вы подсказали, откуда взять значение переменной $feed для своего фида, то цены бы Вам не было.

    Спасибо за статью, теперь лучше понимаю, что такое парсер.

  2. 21 Авг 2010 16:26 | #2

    @Mareg
    Все очень просто у вашего фида есть адрес для подписки и для чтения, он имеет вот такой вид – http://feeds.feedburner.com/makweb. Где – makweb – имя фида, то есть значение переменной $feed

  3. 07 Ноя 2010 23:04 | #3

    А feedburner не забанит за слишком частое обращение к нему?

  4. 07 Ноя 2010 23:40 | #4

    @zeleboba
    Нет, так как это API системы, и они под это уже готовы ;)

  5. 07 Ноя 2010 23:45 | #5

    Просто видел плагин под WordPress. Кажется назывался он Simple Counter Widgets. Или как-то очень похоже. Так вот там в настройках специально была опция таймаута, черз который слать запросы системе. В ридми было сказано, что если количество раз увеличить, то feedburner забанит за слишком частые запросы. Если в вашем варианте такого не случится, то это просто здорово.

    В любом случае, благодарю за скрипт!

  6. 07 Ноя 2010 23:58 | #6

    @zeleboba
    Все будет нормально так как это API ;) спасибо за благодарности!

  7. 09 Ноя 2010 12:17 | #7

    не пашет

    circulation="0"
    

    и всё тут :(

  8. 09 Ноя 2010 16:07 | #8

    @GTAlex
    значит в настройках аккаунта отключена возможность проверять эти значения ;)