#rss #proxyscript #node.js #nodejs #heroku
Представьте, что есть какой-то сайт, с полезной для вас информацией, которая постоянно пополняется. Например, это может быть сайт с объявлениями. Но этот сайт не предоставляет возможности получать оповещения о новой информации. Поэтому вам нужно периодически заходить на этот сайт и просматривать новую информацию. Было бы намного лучше получать оповещения о новой, нужной именно вам информации, сразу в телефон.
Для этого можно использовать обычный RSS-ридер.
Возможно те, кто помладше и не слышали никогда о нём, поэтому поясню что это такое.
RSS - это по сути то, что мы сегодня называем лентой новостей. Только в формате XML. На такую ленту новостей можно подписаться через специальное приложение, называемое RSS-ридером, и получать оповещения о новых записях.
Лет 15 назад RSS был довольно популярен. Однако уже потерял свою былую популярность. Новые сайты уже не предоставляют информацию в этом формате, а те, кто раньше предоставляли - постепенно отключают RSS.
Кто-то скажет, что RSS уже не нужен, ведь есть те же ленты новостей в соцсетях. Но эти ленты содержат ещё кучу рекламы и “умных” рекомендаций.
Я до сих пор использую RSS, чтобы следить за нужной мне информацией, например объявления о продаже автомобилей, недвижимости и о вакансиях.
Совсем недавно один из сайтов, на который я был подписан, отключил RSS, чем меня сильно огорчил. Но, к счастью, тот же самый сайт предоставляет REST API.
Первая мысль была найти какое-нибудь приложение, которое сможет аналогично RSS-ридеру читать новые записи из REST API. Однако ничего толкового не нашёл, но оно и понятно. RSS - это стандартизированный формат данных, в то время как REST может предоставлять данные в любой структуре.
Следующей идеей было написать простейший прокси скрипт для преобразования REST в RSS. Ведь ридер уже есть, нужно только подать ему правильный формат.
Такой скрипт помимо непосредственно конвертации из JSON в XML может ещё и отфильтровывать неинтересные записи. Благодаря этому, такой скрипт можно использовать и в случаях, когда сайт предоставляет RSS, но не даёт достаточных фильтров.
Даже если сайт не предоставляет ни RSS, ни REST, на худой конец можно работать с HTML и так же фильтровать и преобразовывать в XML.
Для скрипта я выбрал Node.js. Далее чуть подробнее разберу скрипт.
Код этого скрипта получился очень простым.
Первый случай, когда нужно преобразовать из REST в XML. Просто берём данные по ссылке. Далее формируем rss объект, который позже сериализуется в xml.
Заполняем все стандартные поля.
Поле item - должно быть массивом записей. Здесь я беру список вакансий фильтрую его по нужным мне условиям и преобразую в список записей RSS.
Потом с помощью xml2js библиотеки преобразую js объект в xml.
Обязательно ставим тип ответа xml и возвращаем сам xml.
В случае с только фильтрацией всё ещё проще.
Берем данные, с помощью того же xml2js преобразуем в объект. И фильтруем массив item. А дальше так же как и в первом случае.
Итак, после того, как скрипт готов и проверен, можно задеплоить его на какой-нибудь хостинг.
Теперь остаётся вставить в RSS-ридер ссылку на прокси скрипт. И вуаля. Больше не нужно постоянно проверять сайт на наличие новых объявлений, что позволяет значительно экономить время.
0:00 Вступление
0:26 Что такое RSS
2:19 Прокси скрипт
Смотрите видео RSS прокси на Node.js / Нотификации в телефон с любого сайта онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь VoidPlusPlusRu 08 Март 2021, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 55 раз и оно понравилось 2 людям.