Правильный парсинг RSS на PHP: как определить обновился ли канал?

A7
На сайте с 17.02.2010
Offline
5
1675

Надеюсь правильно сформулировал вопрос.

Я хочу парсить определенные каналы, и парсить записи оттуда в максимальные короткие сроки (то есть запись появилась - спарсил)

Как это делать я не знаю.

Единственный очевидный для меня способ, это проверять дату в <lastBuildDate>Thu, 01 Apr 2010 16:37:39 +0000</lastBuildDate> (в моем случае эта строка всегда будет присутствовать), но не считаю что этот способ приемлем.

Нельзя ли на php сделать так, чтобы при появлении новой записи в фиде генерировалось какое - либо событие? Я просто не очень знаком с этим, и хотелось бы узнать как это делается.

Просто как я понимаю, Google Reader каким-то образом парсит каналы мгновенно...

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

Скажу честно - я не в теме парсинга RSS. И потому хотелось бы хотя бы ссылку на решение подобного вопроса.

Я знаю как парсить, вопрос мой как максимально эффективно определить наличие новых записей в канале RSS

upd

насколько эффективно использовать ETag?

я понял, что он не грузит всю страницу, а только заголовки?

если я например раз в 1-5 минут буду запрашивать Etag скажем у 50 каналов, насколько такой метод приемлем?

Динамическмй список dofollow-блогов (http://andruha-vorobyev.ru/spisok_dofollow_blogov)
maldivec
На сайте с 04.11.2008
Offline
160
#1

Есть только один способ и вы его описали - с n-ной периодичностью проверять канал на наличие новых постов. Иначе никак. Ведь ваш скрипт никаким образом не связан с rss каналом, как он может выполнять какое-то действие при появлении новой новости? Он об том никак узнать не может, если только скрипт RSS канала не пингует ваш скрипт при обновлении.

A7
На сайте с 17.02.2010
Offline
5
#2
maldivec:
если только скрипт RSS канала не пингует ваш скрипт при обновлении.

вот собственно про что - то такое я и спрашивал

А можно сделать чтобы пинговал, и вообще в общих чертах, что из себя эта технология (или метод если можно так назвать) из себя представляет?

ну т.е как понимаю я, RSS - канал обновился - скрипту что - то посылается. Но вот я только не пойму что и как ему может посылаться

Bitman
На сайте с 05.07.2009
Offline
112
#3
Северный лес (https://euro-vagonka.by) DREW (https://drew.by) AvtoDrive (https://avtodrive.by)
ewg777
На сайте с 04.06.2007
Offline
225
#4
насколько эффективно использовать ETag?

ETag формируется на базе полученных от клиента данных, которых при парсинге Вы не отправляете.

ETags are cached by the browser, and returned with subsequent requests for the same resource, a tracking server can simply repeat any ETag received from the browser to ensure an assigned ETag persists indefinitely (in a similar way to a persistent cookies).

Проще get_headers и забирать Last-Modified.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий