Недавно возникло желание читать пару групп ВКонтакте. Регулярно заходить туда и проверять, не появилось ли чего нового - это не наш путь. Поэтому, узрев в этом желании отличную возможность поиграться с Google App Engine и Python'овским HTMLParser'ом, написал себе небольшой "велосипед" - vkontakte-feed.appspot.com. :)
Отдает посты с публичных стен в RSS. Пользуйтесь, если кому надо.
Спасибо Дмитрий, как всегда то что надо!
ОтветитьУдалитьОтлично.
ОтветитьУдалитьКруто! Спасибо!!!
ОтветитьУдалитьСпасибо - вполне удобно.
ОтветитьУдалитьМожет еще распишете весь процесс создания подобного. Просто пользуюсь для некоторых целей сайтом feed43.com - думаю идея с разбором сайт на куски текста похожа.
Анонимный, а что именно вас интересует?
ОтветитьУдалитьВообще, когда парсишь HTML, к каждому сайту приходится подходить индивидуально. Тут счастья никогда не будет. Да, в vkontakte-feed.appspot.com я расширил Python'овский HTMLParser, чтобы с ним можно было удобно работать, но все равно большая часть кода - это именно подстройка под HTML-код vkontakte.ru.
Можно парсить как я, HTML-парсером (сложнее, но более устойчиво к изменениям дизайна), можно регулярными выражениями, но, в любом случае, если хотите, чтобы за генерируемый RSS не было стыдно, придется повозиться... Ничего особо сложного - просто кропотливая работа, требующая некоторого времени.
А так, на сайте есть ссылка на исходный код - https://github.com/KonishchevDmitry/vkfeed. Смотрите, заимствуйте - я будут только за.
Если можно, один багрепорт:
ОтветитьУдалитьне работает использование id'шников, т.е. http://vkontakte.ru/durov работает, а http://vkontakte.ru/id1 - нет.
Не знал, что существуют такие маленькие id'шники. :) У меня там просто проверка стоит, чтобы народ не вводил всякую фигню. Спасибо, поправил.
ОтветитьУдалитьУ меня выдаёт страницу с кодом каким-то почему-то
ОтветитьУдалитьНу вы хотя бы покажите, что за код-то - мне так сложно понять, что именно вы имеете в виду.
ОтветитьУдалитьP.S.: На всякий случай спрошу: а вы вообще в курсе, что такое RSS? А то, может быть, этот код и есть RSS? :)
Хорошая идея, респект. Буду вашим бета-тестером :) а с какой переодичностью обновляется лента?
ОтветитьУдалитьНа данный момент в реальном времени: при обращении к http://vkontakte-feed.appspot.com/feed/.../wall отправляется запрос на http://vkontakte.ru/, парсится ответ, и генерируется RSS-лента. Впоследствии, возможно, добавлю какое-нибудь кэширование.
ОтветитьУдалитьСпасибо, отлично подошло для http://www.wordle.net/create.
ОтветитьУдалитьсупер, то что я так давно хотел
ОтветитьУдалитьМожно ли добавить авторизацию, чтобы можно было получать стены закрытых групп?
ОтветитьУдалитьТут есть ряд проблем:
ОтветитьУдалить1) Если пользоваться ВКонтакте API, то авторизацию придется время от времени подтверждать, т. к. токены, которые выдает API, имеют expiration time. Для RSS-ленты это неприемлемо.
2) Если не использовать API, то пользователь должен будет передать свой логин и пароль моему сервису - не многие согласятся это сделать.
3) Авторизацию в RSS поддерживают далеко не все клиенты. К примеру, самый популярный клиент (Google Reader) не поддерживает. К тому же, он считает все ленты полностью публичными, и может предложить RSS-ленту одного пользователя другому. Поэтому во всех RSS-лентах должна быть исключительно публичная информация.
Этот комментарий был удален автором.
ОтветитьУдалитьСпасибо, работает. Но есть один баг. Как только пользователь добавляет аудиозапись, в течение двух недель будет висеть непрочитанная новость (браузер opera mini от 6.0).
ОтветитьУдалитьМелочь, но иногда раздражает.
Но всё равно огромное спасибо за продукт!)
Дмитрий, а если пользоваться API но к примеру от какого-нить спец. логина во вконтакте, чтобы не парсить HTML?
ОтветитьУдалитьgaRex, во-первых, боюсь, что слишком быстро упрусь в лимит на количество просмотренных однотипных страниц в секунду от одного пользователя, а во-вторых - в таком случае я буду отдавать по RSS страницы, которые пользователи пометили как "только для зарегистрированных пользователей", что будет нарушать их privacy.
ОтветитьУдалитьОгромнейшее спасибо!
ОтветитьУдалитьСпасибо огромное, теперь читаю контакт на Флипборде, сортированный по темам, очень удобно и красиво!)
ОтветитьУдалитьДмитрий !
ОтветитьУдалитьСпасибо !
Просто супер!
Женя.
Дмитрий, ваш сайт превысил какую-то квоту и больше не работает.
ОтветитьУдалитьВключите, пожалуйста, снова :)
Анонимный, ВКонтакте RSS - полностью некоммерческий проект, поэтому он бежит на бесплатном аккаунте Google App Engine и, в связи с возросшей популярностью сервиса, под конец каждого дня упирается в лимиты. На данный момент у меня нет времени и желания выносить его на выделенный сервер, поэтому могу разве что порекомендовать либо запустить для себя свой персональный инстанс на Google App Engine, либо воспользоваться social-rss, которым я теперь пользуюсь вместо ВКонтакте RSS.
ОтветитьУдалитьХочу вот Yahoo.Pipes попробовать на предмет формирования ленты с публичных стен. Странно, думал, что уже кто-то такое сделал...
ОтветитьУдалитьКстати, зачем вам в блоге капча? Так тяжко разбирать эти каракули... Отпугивать назойливых посетителей?
Давно пользуюсь вашим сервисом, очень классная штука, но есть одна проблемка.. Я хоть и выбираю отображение "полноразмерного фото", но все равно изображение в RSS намного меньше того, что в самом посте в группе! Не могли бы исправить, если это возможно? Буду очень благодарен! :)
ОтветитьУдалитьVlad, к сожалению, это все, что мне доступно через VK API. Действительно полноразмерную картинку наверняка можно было бы получить, оправляя дополнительные API-запросы для каждой из картинок, но этого я себе не могу позволить, т. к. это сильно увеличит нагрузку на сервис, который итак уже не укладывается в бесплатную квоту Google App Engine.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьКлонируете себе git-репозиторий, меняете все копирайты с "Дмитрий Конищев" и "Dmitry Konishchev" на свои, меняете под себя app.yaml (https://developers.google.com/appengine/docs/python/config/appconfig), и заливаете на свой аккаунт (https://developers.google.com/appengine/docs/python/gettingstartedpython27/uploading).
ОтветитьУдалитьА есть ли возможность залить код на свой сайт (хостинг с Pythonом), или обязательно на аккаунт в Google?
ОтветитьУдалитьСейчас с удовольствием использую ваш сервис, но вечером утыкаюсь в лимит а хочется независимости.
Скопировал git-репозиторий на хостинг, но как запустить без index.php не разбираюсь.
Нашёл нечто похожее (http://lifeexample.ru/razrabotka-i-optimizacia-saita/format-yaml-i-ego-parser-na-php.html), но применить аналогично - знаний не хватает.
Долгое время успешно работает код Full text RSS (fivefilters.org) на моём сайте - у них доступная инструкция по установке.
Надеюсь на похожий вариант вашего RSS для ВКонтакте.
Есть код для получения RSS Вконтакте со своего хостинга http://code.google.com/p/vk-rss/ , но он не различает многие ссылки на странице и не верно выдаёт главную ссылку в конце - на саму страницу. Хотя основной текст и фото выдаёт отлично
ОтветитьУдалитьДобрый день.
ОтветитьУдалитьна сегодня сервис не работает. Когда можно ждать восстановления?
Artem, сервис хостится на бесплатном аккаунте Google App Engine и каждый день ближе к ночи выбирает свою дневную квоту. На следующий день часов в 11:00-12:00 снова становится доступным. Сервис некоммерческий, делался "на поиграться" и я, честно говоря, не ждал такой популярности. У меня нет возможности выделять время на его развитие, поэтому могу разве что только предложить вам поднять его для себя на собственном аккаунте Google App Engine. На небольшую группу людей дневного лимита Google App Engine хватит за глаза.
ОтветитьУдалитьДмитрий,можете ли вы мне скинуть этот сервис,для личного использования?
ОтветитьУдалитьОтличная идея! Вы молодец. Может я что то пропустил и не видел, может вы уже описывали процесс, как поставить к себе ваше приложение. А то я в США и когда у вас 11:00 у нас тут глубокая ночь. очень бы пригодилось ваше приложение!
ОтветитьУдалитьОтличная идея! Вы молодец. Может я что то пропустил и не видел, может вы уже описывали процесс, как поставить к себе ваше приложение. А то я в США и когда у вас 11:00 у нас тут глубокая ночь. очень бы пригодилось ваше приложение!
ОтветитьУдалитьДа, на сайте есть ссылка - https://github.com/KonishchevDmitry/vkfeed
ОтветитьУдалитьСпасибо!
ОтветитьУдалитьДмитрий, а для твиттера такая штука возможна? Я нигде не нашёл как ленту в твиттере преобразовать в RSS
ОтветитьУдалитьУ меня для этого есть еще одно наколеночное поделие, которым я как раз и читаю ВКонтакте и Twitter - social-rss. :) Выдает ленту VK/Twitter через RSS. Но его нужно ставить на своем сервере.
ОтветитьУдалитьДмитрий, большое Вам спасибо за сервис. Единственное - как можно увеличить длину рсс ленты? А то она выдает только 4-10 последних сообщений?
ОтветитьУдалитьЯ установил себе на бесплатный аккаунт тоже, но не могу понять где изменить объем забираемой информации
ОтветитьУдалитьИ второй вопрос, за финансовое вознаграждение возможно ли добавить функцию превращения в RSS отдельных обсуждений в группах?
ОтветитьУдалитьКоличество отдаваемых постов определяется здесь. На публичном сервисе увеличить не могу, т. к. это скажется на исходящем трафике, и бесплатная квота Google App Engine будет выбираться еще быстрее.
ОтветитьУдалитьДмитрий, подскажите пожалуйста, как поменять последовательность записи в RSS ленту?
ОтветитьУдалитьСейчас это - фото потом текст, а нужно сначала текст, потом фото
Вот тут https://github.com/KonishchevDmitry/vkfeed/blob/master/vkfeed/tools/wall_reader.py#L187 можно задать нужный вам порядок.
ОтветитьУдалитьДобрый день! Возможно ли установить на свой сервер?
ОтветитьУдалитьнапишите если не сложно инструкцию по установке на свой сервер. Спасибо!
На свой сервер нельзя - приложение писалось под Google App Engine и довольно сильно на него завязано (хотя, если у кого будет желание - отвязать его совсем не сложно, особенно если отказаться от кэширования). Но поднять свою версию на GAE - проще простого и к тому же совершенно бесплатно.
ОтветитьУдалитьДмитрий, спасибо за ваш сервис, в свое время им было очень удобно пользоваться. Сейчас нашел сайт, который не работает через GAE и генерирует довольно симпатичные RSS - https://vkrss.com
ОтветитьУдалитьДолго мучался, но в итоге сделал Telegram бота на Питоне.
ОтветитьУдалитьОн импортирует посты из групп и сообществ вконтакте и конвертирует их в формат RSS согласно спецификации.
Делюсь разработкой с сообществом.
https://vk4rss.ru/