Как построить приложение-парсер?

Я недавно учу джаваскрипт, уже поделал всякие таймеры и то-до листы, захотелось сделать что-то практичное, что будет уже похоже на полноценное приложение.
Хочу сделать парсер, который будет парсить с досок объявлений новые объявление (отдам котят/щенят) в хорошие руки и будет эту информацию пушить в тг.
Вот кто-то захочет себе найти домашнее животное, ему не надо несколько сайтов обновлять, просто развернуть телеграмм и получать новую информацию, по-моему здорово.
Но т.к я совсем мало учу программирование, помощи мне попросить не у кого, то прошу помочь мне.
у меня есть парсер
https://codepen.io/scrappyjs666/pen/BaJWGpW
он возвращает массив объектов со страницы, вот так вот
623f60808f242900610446.jpeg
Мне нужна следующая помощь:
1. Как мне понимать, что мне пришли новые данные, вот мне вернулся массив объектов, я не знаю, что мне с ним делать. Я допустим через минуту отправляю новый запрос, получаю данные, а как мне понять, что появилось новое объявление, что оно новое. У меня есть идея, что на каждом сайте длинна колонок(карточек) одинаковая, допустим 50 штук, я буду парсить последних 5 с маленьким интервалом и сравнивать их по строкам, но это идея выглядит так себе. Как это можно сделать?
2.Каким образом можно это автоматизировать? у меня идея только вынести эти парсеры(на каждый сайт отдельный) в отдельные js файлы, обернуть их в функции и подключить к js файлу основному и его запускать через сеттаймаут(что тоже обсурд какой-то)
3.Каким образом можно автоматизировать это, что бы это работало автономно, я понимаю, что мне надо какой-то сервер, что бы это работало даже тогда, когда мой компьютер выключен, есть какие-то бесплатные сервера? что можете посоветовать
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
@lomeat
абстрактный ленивый прокрастинатор
1. Все "посты" с досок 100% имеют поля даты (возможно даже created_at) и id. Если все-таки не удается забрать эти поля, то всегда можно присваивать свою текущую дату в момент получения последнему по дате в списке элементу и сохранять его в какой-то стейт вне исполнения контекста скрипта. Когда ты получаешь новые данные, то фильтруешь по дате и url/href/img сохраненного элемента. Новые отфильтрованные постишь куда тебе надо (в бота тг например) и потом сохраняешь снова новый последний элемент.

2. Самый простой вариант это setInterval, но лучше почитай про node-schedule

3. Я использую vercel, но кроме него популярно еще решение от heroku.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы