seo-блог

SEO-блог Остров МЫСЛЕЙ: сео (поисковая оптимизация), монетизация и раскрутка сайта, ресурсы сети.

В избранное :: В загрузку :: В печать
Bookmark and Share

Проблемы с Гугл.Фидбёрниром. Виды Фида. Парсинг RSS. Классы PHP для парсинга.




#16 Ресурсы сети.  Проблемы с Гугл.Фидбёрниром. Виды Фида. Парсинг RSS. Классы PHP для парсинга.

Дорогие подписчики! Сейчас на блоге Остров МЫСЛЕЙ имеется небольшая проблема — повторная отправка RSS-канала при исправлении топика, пока не известно как с этим бороться. Может, кто в курсе? Пока отключил пинги (оповещение сервисов об обновлении ленты). Что касается задержки публикации RSS — это сделано нарочно, задержка составляет примерно 4 часа, зачем она нужна можно узнать из топика о кросспостинге. Меры по лечению RSS-канала принимаются.

Управление пингами в фиде настраивается здесь:

feedburner.google.com —> Publicize —> PingShot —> Activate/Inactivate

Управление сервисами, которые нужно пинговать настраивается здесь:

WordPress (ваш блог) —> Параметры —> Сервисы обновления.

Еще... файл в XML-формате доступен роботам не более, чем 512 кб, следовательно, это порядка 30-50 анонсов постов на выдачу в RSS-канал, сейчас выдается 50 анонсов, раньше более 70, т.е. примерно 1 мб данных… Фид (РСС-канал) в этом случае выдается "сломанный", т.е. без конечных тегов кода, как бы "оборванный"… Гугл.Фидбёрнир показывает, что "фид с ошибками", в то время, как анализатор сообщает, что "фид в порядке". Думаю, роботы не могут правильно отпарсить РСС-ленту и посчитать все вхождения, идет зацикливание кода или что-то еще… исправил, проверю, изменится ситуация или нет. Еще нашел некоторые мелкие косяки… Попробую подкрутить все "ржавые гайки"… Управление RSS-канала осуществляется здесь:

Дашборд (англ. DashBord — админ.панель) —> Параметры —> Чтение —> Настроки чтения:

  • В RSS-лентах отображать последние N записи (-ей).
  • Для каждой статьи в ленте отображать: Полный текст или Анонс (первый абзац).

Парсинг документов сети

Нужную информацию можно сграбить при помощи потокового RSS-канала, но иногда такой способ бывает не совсем удобен, поэтому, программисты используют регулярные выражения в функциях PHP preg_match() и preg_match_all(), если требуется украсть (отпарсить, от агл. parse — "анализ, разбор") какую-либо информацию с какой-либо страницы сети Интернет.  Но эти функции рассмотрим в следующих статьях.

Парсинг (англ. parsing) — это анализ, разбор данных на составляющие. Роль парсера в двух словах заключается в следующем: найти файл, загрузить его в память сервера (ОЗУ), найти в нем определенные теги, присвоить их значения переменным, закрыть файл, выгрузить его содержимое из памяти и передать переменные обработчику, который в зависимости от условий выведет значения переменных на экран. Чтобы не выполнять столько сложных манипуляций и не писать сложный PHP-код, существуют готовый классы, которые просто передают нужные значения, их не нужно обрабатывать, а можно сразу же выводить на экран.

Некоторые полагают, что проще работать со стандартным DOM (для php5, DOM XML для php4), а также XSL (XSL расшифровывается как "The Extensible Stylesheet Language Family", для php5, XSLT — для php 4) или использовать SAX-парсеры («Simple API for XML») — способ последовательного чтения/записи XML-файлов. Обычно SAX-парсеры требуют фиксированного количества памяти для своей работы, но не позволяют изменять содержимое документа. Все, что делает SAX-парсер, это сообщает вызвавшему приложению о встреченных распознанных элементах XML-разметки или о встреченных ошибках. Связь парсера с вызывающим приложением, как правило, осуществляется посредством функций обратного вызова.

Есть два типа парсеров. Одни строят дерево элементов (DOM XML), другие генерируют события, event-driven (Expat). Первые дают кучу объектов один в другом, вторые генерируют событие когда попадается открывающийся тег, атрибут в теге, текст между тегами и закрывающийся тег. Далее с этими событиями и получаемыми с ними данными можно делать что угодно.

Популярные библиотеки (классы) для парсинга RSS: XMLReader, SimpleXML, SimplePie и другие.

Ссылки:

  • saxproject.org
  • http://ru.wikipedia.org/wiki/SAX

Парсинг RSS-канала

Фид (англ. feed — "питание, подача, подпитка, загрузка") — это общее определение всех XML-форматов передачи данных, т.е. Атом, RSS и прочие.

XML-файл, для импорта / экспорта для CMS WordPress назвали "расширенным RSS" — WXR.

Интерфейс прикладного программирования (API) постоянно развивается. Благодаря API, можно по-новому создавать статистику каналов данных. Используя в работе API управления RSS-каналами, издатели могут также создавать и управлять настройками RSS-каналов.

Ссылки:

  • http://code.google.com/intl/ru-RU/apis/feedburner/

Что такое RSS?

Зачем же собственно нужен RSS, если можно просто тупо отпарсить страницу и без него? — дело в том, что RSS — это уже отпарсенная страница, очищенная от всевозможных тегов HTML... это простой текст, который нужен для быстрого оповещения кого-либо, что очень удобно для оповещения, например, погоды, курса валют и других новостей, на которые можно подписаться по желанию. Как только система управления сайтом CMS создает (обновляет) файл данных (XML-файл), то она пингует (посылает уведомление) другим системам, который этот файл забирают...

XML-файл — обычный текстовый файл, содержащий в себе весь текст сайта, но стоит помнить об ограничении... Файл импортируется правильно программами и онлайн-скриптами (RSS-агрегаторами), если он не превышает 512 кб.

XML-формат придуман как универсальный для передачи всей необходимой текстовой информации в едином универсальном виде для максимальной совместимости читающих и передающих сервисов / программ.

Далее, когда XML-файл подхвачен, можно применить свои стили для формирования красивого, удобного и понятного интерфейса. Собственно, если трансляция (оповещение о новостях) RSS-канала идет не в закрытую ленту, а на веб-ресурс, то в данном случае, эту трансляцию в SEO можно назвать "внешней оптимизацией сайта". Если ссылки на приеме будут оставаться открытыми для индексации (чтения) их поисковыми роботами, то это поможет значительно поднять видимость сайта в сети.

Парсить, т.е. извлекать нужную информацию из XML-файла довольно-таки сложновато, поэтому разработчики плагинов для CMS WordPress (Вордпресс), чтоб упростить обработку файла и вывод данных, используют классы, написанный на PHP. Таких классов много, их задача — облегчить парсинг (вытаскивание текстовой информации) из XML-файла не напрямую, а через свои внутренние теги, это позволяет не писать огромные скрипты для обработки информации, а воспользоваться уже готовыми решениями, что значительно упрощает работу. Но многие классы были заброшены и долгое время не обновлялись, их совместимость с передачей информации низка и не всегда работает... а также приходится иногда подстраиваться под определенные версии PHP, если проверка не ведется в самом классе.

Парсер RSS-каналов своими руками

Для парсинга RSS-канала выбран класс SimplePie, вот так выглядит RSS-граббер на классе SimplePie в работе, скачать PHP-файл можно здесь. Если кому нужно будет, доработаю, обращайтесь. Для тех, кто не в курсе, вставить новостную RSS-ленту своих друзей очень легко, достаточно просто заинклюдить файл (один файл вставить во второй) в нужный шаблон своей Темы, например, в удобное место файла index.php вот так:

<?php include('isle_rss.php'); ?>

К сожалению, данный вариант имеет 100%-ю совместимость только для CMS WordPress и подобных, каналы бесплатных блогохостингов принимает только частично, т.е. там нет некоторых данных, например, источник РСС, автор и т.д., потому как они изначально не заложены в передачу, кроме самого поста, даты публикации и некоторых других данных. Еще неудобством является то, что нужно указывать для правильного парсинга не только доктейп HTML-документа, но и его HTML-версию:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://w3.org/1999/xhtml" xml:lang="en">

Также можно почитать документацию о настройках, кому интересно: настройки SimplePie.

Для парсинга можно также использовать готовые агрегаторы RSS-каналов (англ. agregator), например, самый популярный для WordPress — WP-o-Matic, который поддерживает также импорт/экспорт OPML-файлов и, кстати, тоже использует класс SimplePie, подробней об этом можно узнать на сайте devthought.com.

Парсинг RSS средствами CMS WordPress

Продвинутый парсинг RSS средствами CMS WordPress с использованием функции fetch_rss(), выглядит так:

<?php // Get RSS Feed(s)
$uri = "http://isle-blog.ru/feed/";
include_once(ABSPATH.WPINC.'/rss.php');
$rss = fetch_rss($uri);
$maxitems = 5; //Максимум топиков одного сайта.
$items = array_slice($rss->items,0,$maxitems);
?>
<ul>
<?php
if (empty($items)) echo '<li>No items</li>';
else
  foreach ($items as $item) : ?>
    <li>
      <a href='<?php echo $item['description']; ?>' title='<?php echo $item['title']; ?>'>
        <?php echo $item['title']; ?>
      </a>
    </li>
  <?php endforeach; ?>
</ul>

Либо можно воспользоваться встроенной функцией wp_rss():

<?php
  include_once(ABSPATH.WPINC.'/rss.php');
  wp_rss('http://isle-blog.ru/feed/',5);
?>

Ссылки:

  • Подробное описание встроенных функций CMS WordPress: wp_rss, fetch_rss.
  • http://codex.wordpress.org/Category:Functions — поставьте поиск в браузере на странице для подсветки всех нужных функций (feed и RSS).
  • MagpieRSS and RSSCache.
  • http://codex.wordpress.org/Function_Reference/get_bloginfo.

RSS-форматы в CMS WordPress

В CMS WordPress встроенны следующие форматы Фида в функцию get_bloginfo():

  • rdf_url: URL for the blog's RDF/RSS 1.0 feed (/feed/rfd).
  • rss_url: URL for the blog's RSS 0.92 feed (/feed/rss).
  • rss2_url: URL for the blog's RSS 2.0 feed (/feed).
  • atom_url: URL for the blog's Atom feed (/feed/atom).
  • comments_rss2_url: URL for the blog's comments RSS 2.0 feed (/comments/feed).

Вывести Фиды на экран можно так ($show — формат Фида):

<?php $rss = get_bloginfo($show); echo $rss; ?>

либо так:

<?php bloginfo($show); ?>

Ссылки в CMS WordPress без редиректа (подстройки ЧПУ) имеют такие адреса:

  • http://isle-blog.ru/?feed=rss
  • http://isle-blog.ru/?feed=rss2
  • http://isle-blog.ru/?feed=rdf
  • http://isle-blog.ru/?feed=atom

С редиректом выглядят так:

  • http://isle-blog.ru/?feed=rss
  • http://isle-blog.ru/?feed=rss2
  • http://isle-blog.ru/?feed=rdf
  • http://isle-blog.ru/?feed=atom

Подробней о настройке ЧПУ см. WordPress_Feeds.

RSS-форматы

Atom — основанный на XML формат, появившийся позже RSS, с исправлениями его недостатков, активно поддерживается компанией Google во многих проектах. Атом предназначен для новостных лент, анонсов статей и прочего, удобен для использования в блогах, но может применяться и для любых других новостных и периодических изданий в Интернете. Существенной частью спецификации является протокол публикации Atom (APP) и протокол на основе HTTP для публикации и редактирования веб-ресурсов. Например, с помощью APP можно отправить HTTP-запрос GET для получения определенного ресурса (например фида или отдельной записи); сервер вернет представление данного ресурса в формате синдикации Atom. Кроме того, можно создавать, изменять и удалять ресурсы с помощью запросов POSTPUT и DELETE соответственно. Такое использование HTTP-запросов для протокола публикации и редактирования соответствует идеологии REST для интерфейсов веб-служб.

Ссылки:

  • RFC 4287
  • http://w3.org/2005/Atom

GData — это новый перспективный протокол от Гугл, основанный на форматах синдикации Atom 1.0 и RSS 2.0, а также на протоколе публикации Atom. В различных контекстах полезно иметь возможность отправить серверу запрос и получить ответ, содержащий список соответствующих этому запросу результатов. Ни Atom, ни RSS не дают такой возможности, но в Atom имеется механизм расширений. С помощью этого механизма стандартных расширений GData может выполнять запросы.

Ссылки:

  • GData — расширение Atom и RSS от Google.

OPML-файл — язык разметки структуры, основанный на XML-формате, служащий для переноса в стандартную электронную форму информации о потоках, которые могут группироваться в ленты. Этот стандарт пригоден для создания списков, включающих как RSS-потоки, так и потоки других форматов — RDF, Atom и др.

RDF-файл — разработанная консорциумом W3C модель (w3.org) для описания ресурсов, в особенности — метаданных о ресурсах. В основе этой модели лежит идея об использовании специального вида утверждений, высказываемых о ресурсе. Каждое утверждение имеет вид «субъект — предикат — объект» и в терминологии RDF называется триплетом. Например, утверждение «Небо голубого цвета» в RDF-терминологии можно представить следующим образом: субъект — «небо», предикат — «имеет цвет», объект — «голубой». Для идентификации субъектов, предикатов и объектов в RDF используются URI (англ. Uniform Resource Identifier — унифицированный (единообразный) идентификатор ресурса.).

Одной из главных целей RDF является предоставление утверждений одинаково в машинно- и человеко-распознаваемом виде.

Существует несколько синтаксисов для представления RDF-информации, самые распространенные из которых: RDF/XML, триплеты (Нотация 3) и графовая модель.

Для обработки RDF имеется несколько языков запросов: например, RQL, RDQL, SPARQL.

Ссылки:

  • http://ru.wikipedia.org/wiki/URI

Дополнительные ссылки по теме.

Википедия: RSS-агрегаторOPMLRDF, Atom, RDF

Стандарты: opml.org.

Нашли ошибки, знаете больше? - Пишите, исправим и дополним.


Теги (метки) Метки статьи:

Все метки (теги).
Просмотров: 1,441
Комментариев: Комментарии (3)
Опубликованно: Воскресенье, Ноябрь 22nd, 2009 в 10:56
Обновлено: 23 Ноябрь 2009 в 7:02.
Директории: Ресурсы сети, Ссылки на ресурсы
Автор: admin, все авторы.


В статье: 1569 слов. Ссылки на странице.
Bookmark and Share
УжасноПлохоНормальноХорошоОтлично
(голоса: 2, оценка: 5.00 из 5)
Источник: http://isle-blog.ru/resources-internet-what-is-it/feed-channel/


Понравилась статья? - Не пропустите следующую, подпишитесь на RSS-канал[?], e-mail или читайте блог Остров МЫСЛЕЙ через Яндекс.Ленту или Google.Reader.

Также Вы можете оставить комментарий, или trackback[?] на Вашем сайте.
На эту статью ссылаются:



Эту статью находят по поисковым запросам:
Оставьте свой комментарий на seo-блоге Остров МЫСЛЕЙ
Нам важно Ваше мнение. (Комментарии (3))
anisart пишет:
Декабрь 4th, 2009 Комментариев: 1
#1

Насколько я знаю, данная проблема не лечится. Даже такие серьезные ресурсы как 3DNews.ru ей страдают и подобное заметно на очень многих новостных ресурсах.
ИМХО, лучший и возможно единственный способ решения проблемы – это перед публикацией все тщательно проверять и делать нужные правки ;-)

Sosnovskij пишет:
Январь 7th, 2010 Комментариев: 1
#2

У самого такое было. Думал с фидбернером проблемы были. Только проблема была только при редактировании заголовка поста.

Счастливая пишет:
Апрель 20th, 2010 Комментариев: 1
#3

На одном из моих новостных порталов тоже происходило подобное, но я не смогла исправить ситуацию… :sad:



RSS-канал[?] комментариев данной статьи или всего блога Остров МЫСЛЕЙ.
Для установки аватара (фотография комментатора) используйте gravatar!
Оставляя комментарий, Вы соглашаетесь с правилами комментирования.

Прокомментировать

XHTML-теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

символов осталось из 2000.

Trackbacks

    Пример: SEO, PageRank, ТИЦ, Search.
    banner banner banner
    Рекламный блок РБ3 (360x60 или 125х125 пх). Здесь может быть Ваша реклама (текст, ссылки, баннеры) - сквозная прямая ссылка на всех страницах всего за 40 $/мес. Подробности по размещению рекламы в блоге Остров МЫСЛЕЙ: 463768885, zgr@bk.ru...
    Август 2013
    Пн Вт Ср Чт Пт Сб Вс
    « Июл    
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  
    advertising На этом месте могла
    быть Ваша реклама.
    advertising На этом месте могла
    быть Ваша реклама.
    advertising На этом месте могла
    быть Ваша реклама.
    Регистрация в блоге:

    Частые комментаторы:

    gravatar Марина
    Комментариев: 13
    Сайт: biznes-mesto.ru
    gravatar Олли
    Комментариев: 13
    Сайт: zhenskayalogika.ru
    gravatar Alex
    Комментариев: 8
    Сайт: blog.xx-web.ru
    gravatar Елена
    Комментариев: 8
    Сайт: Ru-party.ru/blogg
    gravatar Светлана Бобровская
    Комментариев: 6
    Сайт: vseuch.ru
    Пользователи:

    Администраторы: 1 (admin)
    Редакторы: 1 (admin)
    Авторы: 1 (admin)
    Публикаторы: 1 (admin)
    Зарегистрировано: 1
    Всего пользователей: 75

    Авторы:

  • admin 1 (78)

  • Статистика блога:

    Предложить работу:

    Обратная связь:

    gravatar Блогер-сеошник, веду сайты: Остров ПОЭЗЫ, Остров УСЛУГ, Остров ЛИТЕРАТУРЫ. Это техническая страница, более подробно обо мне смотрите здесь.Также приглашаю заглянуть в раздел О блоге и посетить личный блог.

    Autor: Зайва Игорь Леонидович

    E-mail: zgr@bk.ru

    ICQ: 463-768-885

    Reserve:

    Reserve:

    Рейтинг@Mail.ru Рейтинг блогов Rambler's Top100
    Также читайте раздел: Блогосфера.

    Если Вы ведете блог схожей тематики (раскрутка, оптимизация или монетизация сайта), давайте обмениваться ссылками.

    Блогролл:

    Пока пусто, но Вы можете предложить свой тематический ресурс.
    Я.ру
    Мой мир
    Мой круг
    Мир тесен
    Моя Опера
    В контакте
    В одноклассниках
    topics
    RT @RusBase: Всероссийская база данных населения http://t.co/JT9Bs9Eu 2012-02-13
    • RT @RusBase: Всероссийская база данных населения http://t.co/JT9Bs9Eu 2012-02-13
    • RT @nepenucb: Архив переписи населения теперь в общем доступе. В нём есть и ты! Бесплатный сервис поиска на http://t.co/PzmiowL7 2012-02-06
    • RT @bazapoiska: Бесплатный поиск информации о любом человеке http://t.co/siZpIVtm 2012-01-30
    • RT @adam00011: Не можете победить лишний вес? Перестаньте кушать ЭТО http://t.co/oZicB7eZ 2012-01-27
    • RT @adam00011: Национальный поиск данных http://t.co/jAuF6N7F 2012-01-26
    • More updates...

    Posting tweet...

    Nahaa.ru
    SetLinks.ru
    linkfeed.ru
    Uniplace.ru

    Sape.ru

    ProfitBlog.ru
    j2j.ru

    1ps.ru
    Regone.ru
    Seopult.ru
    Все партнеры seo-блога Остров МЫСЛЕЙ. Также читайте статью Монетизация сайта: биржи статей и ссылок, а также статью Прогон сайта; бесплатная регистрирация.
    Последние комментарии:
  • Трекбеки и пингбеки:
  • Умные деньги: Законы блогосферы | Честный бизнес
  • Эстафета продолжается в статьях и комментариях.: Это уже позже я прочитала на блоге Игоря статью “Акции,...
  • Блог Береза Владимира: Алгоритм Google или определяем PR
  • Анонс лучших статей блогосферы: КАРТА САЙТА И БРЕДОСАЙТЫ: ХИТРОСТИ И ЭФФЕКТИВНОСТЬ.


  • Бэклинки (внешние ссылки):


    Статистика ссылок
    Яндекс: 0, Гугл: 0, Яху: 0.
    Самые любимые статьи:

    Использование материалов разрешено только при указании источника.
    Подписаться на рассылку RSS всего блога или только комментариев.
    Блог рожден: 1. 10. 2008, живет: 4 года, 10 мес. и 20 дней.
    SEO-блог Остров МЫСЛЕЙ работает на WordPress
    Copyright © 2008-2013 isle-blog.ru PageRank
    Республика Казахстан, Алматы
    Widgetize!

    seo
    Этот домен продается на telderi