Вопрос про мониторинг ЖЖ

А вот есть ли какой-то способ быстро (секунды) узнавать, что в ЖЖ-юзер написал новый пост? Мониторить надо, допустим, несколько тысяч журналов.

Вижу такое решение: зафрендить и мониторить френдленту, но ведь забанят, если раз в 10-15 секунд ее дергать ?

P.S. Задавать вопросы в блоге понравилось. Работает, ответы хорошие. Попробую еще.

Comments

чтобы узнать,что конкретный юзер написал пост можно через определенное время парсить его юзеринфо(либо в html-формате, либо в foaf) http://xc0der.livejournal.com/profile?mode=full (http://xc0der.livejournal.com/data/foaf),в них есть поле "последняя запись", содержащая дату и время последней записи. но есть способ лучше - мониторить общую ленту всего ЖЖ в html - http://www.livejournal.com/stats/latest.bml или xml - http://www.livejournal.com/stats/latest-rss.bml . Первый способ хорош тем, что возможно узнать об обновлении жунала даже если это friends-only или private запись. в общую ленту, понятное дело, попадают только public записи.
еще может пригодится bot policy - http://www.livejournal.com/bots/

Проблема в том, что мне не надо весь ЖЖ. Наоборот, мне надо конкретных пользователей, но максимально быстро.

а предлагаемый мною первый вариант чем не подходит?можно ведь не скачивать каждый раз юзеринфо, а проверять и если файл изменился, скачиват и если надо, записывать время обновления и по необходимости забирать запись по RSS(если она публичная)

Он нормальный, но это pull. А pull-ом можно и просто френдленту перечитывать (с теми же ограничениями).

Хорошее решение (в том смысле, что оно push) подсказали в комментах в ЖЖ: подписаться на нотифаи о новых записях через IM и ловить их Jabber-ом.
http://alextutubalin.livejournal.com/43428.html?thread=50340#t50340

А раз в минуту уже не пойдет?

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

Да, что-то уж слишком маленький интервал. :)
Я, конечно, не так часто ленту проверяю, но решение такое нашёл: создал группу друзей в ЖЖ RSS , затем эту ленту по RSS читаю.

Вообще, Яндекс ведь мониторит ЖЖ. И делает запросы к нему, по всей видимости, гораздо чаще, чем 10-15 секунд. Значит можно попробовать.

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

Ну теперь даже не надо спрашивать что за сервис планируется, он называется: "первый нах" :-)

Тоже идея хорошая.

В ЖЖ есть фид, куда пишутся все новые записи потоком. Можно читать этот фид. Сколько он мегабит выдаёт, я не знаю, но если задача того стоит, то можно и покачать.

Ссылку на него не вспомню.

я уже выше ссылки привел

А мегабиты тут причем? Читать надо только голову потока до того места где в прошлый раз было начало. Ндеюсь как это сделать об'яснять ненадо?

А неважно.

Мне нужно, грубо говоря, 0.1% от ЖЖ. А все предлагают 100%

Идеально подходит вот это, если трафика не жалко:
http://updates.sixapart.com/

Я однажды пробовал написать скрипт friends2email и обнаружил, что можно проверять наличие обновлений ЖЖ конкретного пользователя по дате обновления его страницы, выдаваемой по запросу HEAD. Для RSS тоже работает. Думаю, смело можно тягать HEAD'ы раз в несколько секунд.

Для rss, кстати, работает добавление к заголовку запроса поля "If-modified-since":

$ GET -i '2007-10-08 00:00:00' http://goodvin.livejournal.com/rss
(ничего нету)
$ GET -i '2007-10-01 00:00:00' http://goodvin.livejournal.com/rss
(много букв UTF-8)

Может быть RSS анализировать?

Можно задействовать Pipe от Яхо.

Поищите в Сети форум "Тормоза" на этот счет.

Yahoo pipes попользовался три дня и отказался
1) ничего, кроме примитивной фильтрации по кейвордам там для задачи сделать не получится
2) при этом, информация об источнике теряется.

А там можно наложить фильтр по тем юзерам, которые меня интересуют ?

Их средствами - нет. Фильтровать придётся самому. Это ж фид для поисковых машин.

В тех масштабах, что мне нужны, - это из пушки по воробьям. Даже в самых смелых мечтах мне больше нескольких тысяч записей в день не нужно, это процент от русскоязычного ЖЖ и о-малое от ЖЖ вообще.

Тогда только создавать отдельные аккаунты, вписывать в друзья (а на их число есть лимит, как есть и лимит на количество добавленных за день) и ставить в настройках крыжик "уведомлять на IM, если кто-то из друзей напишет пост". Ну, и держать запущенный джаббер для приёма этих самых уведомлений...

О. IM - хорошая идея.

А лимиты пока не волнуют, хочется оттестироваться, поток тестеров я смогу
сам регулировать, не проблема. А если пойдет, то и целиком выкачать не такая проблема.

Уведомления о новой записи юзера включаются через кнопку в его профиле. Или так - http://www.livejournal.com/manage/subscriptions/user.bml?journal=someuser

только у этой штуки есть один несущественный недостаток - уведомления довольно не стабильно работают.вспомните как "оперативно" приходят комменты на е-мейл :)

На e-mail - нормально приходят. Мгновенно.
Я, конечно, не очень активный жж-юзер, но не помню, чтобы что-то упустил.

не, бывают перебои, особенно с е-мейл уведомлениями..

лаки бастард.

99: уведомлений приходят нормально.

1% может не свести. Трое суток тотальной заедржки были на моем памяти, Приход комментариев недельной и двухнедельной давности -- тоже.

я не буду тебе говорить, что почтовый кластер такого размера -- штука сложная :)

тогда тебе все правильно сказали

френдлена совсем не годится
возожно, прямой пинг по http будет несильно быстрее, чем подписка. И ТОЧНО надежнее: все жжшные алерты надежно глючат. Почтовый кластер у них вообще любит чудить.

Дергать, очевидно, лучше RSS с заголовками

я тупой
тебя забанят за слишком частые рнеквесты, так что тебе еще и потребуется сеть распределенных прокси (которая впрочем, есть легальная (я забыл название)), а делать-то тебе достаточно HEAD они в этом месте могли облажаться, но проверить-то две копейки.

Re: я тупой
я как-то час забирал агрессивно юзеринфо разных юзверей на 100Мбитке и меня не банили :)( в отличии от Яндекса, который каждых полчаса вроде банит по IP )
здесь прописано что можно, а что нет - http://www.livejournal.com/bots/

Re: я тупой
еврисинг кен би брокен

я достаточно хорошо помню, как пи... отключали ППБ на разных этапах его существования, поэтому честно предупредил

да, яндекс банит очень жестко. Но Алексей в курсе, я полагаю.

Как-то не хочется для 100 юзеров делать 100 запросов в 15 секунд.

Блин, получается что сервис для узкого круга жж-шников и не сделать ?

Ну и ладно, может оно и к лучшему.

ну если хочется только public записи использовать, то проще простого раз в 10 секунд скачивать общий фид всего ЖЖ

если я тебе скажу, что из каждых 5000 юзеров можно сформировать френдленты, которые можно дергать, но при этом необходимо учитывать все внутрикластерные глюки жж, то тебе не станет легче, да?

кстати, "кто хуже: (100 head или 1 get)/15 sec. " , безусловно, один из моих самых любимых вопросов/
Поскольку жж -- вполне себе опенсорс, то этот вопрос можно выяснить читая код :)

Подписаться на обновления френд-ленты через почту или джаббер.

А как это? Где-то в настройках?

Устойчивое ощущение, что было здесь.

http://www.livejournal.com/manage/subscriptions/

Но не могу найти почему-то. То ли убрали, то ли у меня галлюцинации.

Мдя... Я в подписках тож смотрел... (((
Есть такая фича для платников, но это ж маразм...