Хабрахабр

Читаем ВКонтакте через RSS

Возможно, я сильно отстал от жизни, но я практически не пользуюсь соцсетями, а собирать информацию об обновлениях интересующих меня сайтов предпочитаю через RSS. Но совсем от соцсетей не избавиться, некоторые полностью перешли туда, закинув сайты (ну или rss-каналы на этих сайтах).

Потому нужен какой-то парсер, который будет брать информацию со страницы в соцсети и представлять её в виде rss-канала, который я могу отдать своей RSS-читалке.

image

Какой-то время я пользовался feed.exileed.com, но это не слишком стабильная штука была, а последнее время вообще практически перестала работать. Потому задумался о замене.
Набрёл на сервис vkrss.com, но практически одновременно увидел и php-скрипт одноимённый: https://github.com/woxcab/vkrss, что сразу заставило прекратить поиски — я любитель self-hosted решений, на сторонние сервисы по возможности стараюсь полагаться только как на резерв, а не как на основу.

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

  • Получение RSS-ленты открытой стены: извлечение описания из разных частей (включая вложения) и построение заголовков на основе описания.
  • Также получение RSS-ленты закрытой стены при наличии токена с правами оффлайн-доступа, привязанного к профилю, которому открыт доступ к такой стене. Ниже описан один из способов получения токена.
  • Получение RSS-ленты, содержащей записи с различных открытых стен, которые соответствуют глобальному поисковому запросу.
  • Получение произвольного количества записей со стены.
  • Получение записей, опубликованных от кого угодно, от имени сообщества/владельца страницы или ото всех, кроме сообщества/владельца страницы.
  • Фильтрация записей по наличию или отсутствию подписи.
  • Фильтрация записей по соответствию и/или несоответствию регулярному выражению в стиле PCRE.
  • При желании исключение записей в сообществе, помеченных как реклама [по умолчанию отключено].
  • Извлечение хеш-тегов в качестве RSS-категорий.
  • При желании HTML-форматирование всех видов ссылок, изображений, переносов строк [по умолчанию включено].
  • Допустимо использование HTTPS, SOCKS4, SOCKS4A или SOCKS5 прокси-сервера для запросов.
  • У каждой записи в ленте указан автор (либо тот, кто подписан или опубликовал запись, либо тот, кто подписан или опубликовал исходную запись, если конечная запись является репостом исходной).
  • Возможность задать свой собственный разделитель с подстановками между родительским и дочерним записями (репосты).

RSS я после смерти гуглоридера читаю через Tiny Tiny RSS (не единственный вариант, но вполне достойный). Так что свой сервер у меня имеется и добавить там ещё и парсер для вконтакте проблемой не является.

В недостатках только то, что для работы данный скрипт требует регистрации на vk.com, без этого не получить токен доступа даже для чтения открытых страниц.

Попробовал несколько различных сайтов для приёма sms, но ни один не подошел. Исключительно для того, чтобы покормить паранойю, попробовал завести свежий аккаунт, но сломался на вводе номера телефона. Я не говорю, что это невозможно, просто далеко не так просто. На некоторые sms просто не приходила, на некоторые vk.com отказывался их посылать, «этот номер уже использовался» или «неправильный номер». Да и проще, наверное. Надёжней будет добыть физическую симкарту, не привязанную к вашей личности.

Но я всё равно уже зарегистрирован, так что всё вышеописанное было просто развлечением.

Вводные:

04. Имеется сервер на Ubuntu 16. Надо транслировать туда несколько страниц с сайта vk.com. 6 LTS, где работает ttrss.

Страницы все открытые, без паролей, никаких закрытых страниц я не читаю.

Установка:

Системные требования минимальные, достаточно практически одного только наличия php.
Тут всё элементарно — если не хочется ставить git, то скачиваем архив с гитхаба да распаковываем куда-нибудь в папку к вебсерверу, чтобы можно было браузером достучаться.

2. PHP>=5. 5. 2 (в т.ч. X, 5. 3. X, 5. 4. X, 5. 5. X, 7. 6. X) с установленными по умолчанию поставляемыми расширениями mbstring, json, pcre, openssl.

Если у PHP отключена встроенная возможность загрузки файлов по URL (отключен параметр allow_url_fopen в конфигурации или параметрах интерпретатора), но при этом у PHP установлено расширение cURL, то именно оно будет использоваться для загрузки данных.
Скрипт предпочитает использовать встроенные в PHP возможности по отправке запросов.

Настройка:

На странице программы достаточно понятная документация имеется по всем вопросам, потому я тут только кратко про свою задачу расскажу — читать публичные страницы.

Тогда ссылка должна будет выглядеть как index.php?id=habr&access_token=XXXXXXXXX
Осталось только получить токен для доступа. Ссылка для получения rss-ленты базово должна выглядеть так: index.php?id=<страница>&access_token=XXXXXXXXX
Допустим, мы хотим читать Хабр. Для чтения открытых страниц это элементарно.

Создаёте standalone-приложение:

image

И дальше в разделе «Настройки» вас интересует поле «Сервисный ключ доступа»:

image

То есть в итоге наша ссылка должна будет выглядеть как index.php?id=habr&access_token=5eb381185eb381185eb38118f95ed8e59455eb35eb3811803a40fe7530c290f98df6d0a. Это будет ваш access_token. Открыв ссылку в браузере, видим пригодную для скармливания RSS-читалке страницу. Ну, не забыв, конечно, имя сервера в начале подставить.

image

За более подробными инструкциями советую сходить на страницу программы: https://github.com/woxcab/vkrss#rus.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть