Получайте уведомления с изменениями на веб-страницах

Вопрос или проблема

Иногда необходимо получать уведомления, когда на веб-странице вносятся изменения.

В настоящее время у меня есть несколько простых скриптов на OpenBSD, которые загружают веб-страницу с помощью lynx -width 120 -dump, находят релевантные части с помощью grep -v и -B3 -A3 и т.д., сохраняют это в специальной папке с именем файла на основе date, отслеживают последние две версии с помощью ln -fs и, наконец, выполняют diff, все это запускается через cron.

Скрипты работают, однако выглядят несколько неуклюже, ломается и могут не учитывать некоторые крайние случаи. Есть ли, возможно, какое-либо существующее программное обеспечение, которое может выполнить эту задачу лучше и более оптимально?

Я нашел бесплатное приложение для Android Web Alert очень полезным для этого случая. Это также одно из немногих, которые могут работать с веб-страницами, на которые требуется войти в систему заранее или отправить какую-либо форму.

Я с удовольствием использую https://www.changedetection.com/ уже более 10 лет. Просто дайте ему URL, и он будет отправлять вам по электронной почте уведомления, когда любая часть страницы изменится.

“С 1999 года ChangeDetection.com предоставляет услуги мониторинга изменений страниц и уведомлений для пользователей Интернета по всему миру. Каждый может использовать наш сервис для мониторинга любой веб-страницы на предмет изменений. Кроме того, веб-мастера используют наш сервис для улучшения своих сайтов и увеличения трафика.

Каждый может использовать наш бесплатный сервис для отслеживания изменений на любой странице сети. Вы будете уведомлены, когда страницы, которые вы отслеживаете, изменятся, и сможете увидеть краткий список правок, внесённых в каждую страницу со временем. “

До сих пор я использовал два инструмента для этой цели:

Сначала я использовал urlwatch как задание cron, которое отправляет электронные письма при изменениях на сайте. Но оно выдавало слишком много ложных срабатываний по моему вкусу, и игнорирование частей веб-страниц требовало программирования плагинов.

Сейчас я использую specto, несмотря на то что он больше не поддерживается, но он вполне справляется со своей задачей. Он работает в системном трей рядом с вашим рабочим столом, и иконка меняет свой цвет с синего на оранжевый, если одна из веб-страниц изменилась.

Лучший подход – написать скрипт для получения страницы через cURL, запустить хеш-функцию на ней и сравнить её с предыдущим хешем для этой страницы.

В зависимости от элементов на самой странице, вам может потребоваться провести некоторую обработку между вызовом cURL и хеш-функцией, чтобы удалить динамические элементы (такие как заголовки, блоки с рекламой и т.д.) – вы можете использовать такие инструменты, как API Full-Text RSS от FiveFilter, чтобы извлечь релевантные данные из ваших веб-страниц и хешировать только это.

Если вас интересуют изменения файлов, а не обновления контента – т.е. например, вы хотите отслеживать изменения в вашей файловой системе для защиты от инъекций кода – то вам лучше версионировать свой код в Git или Mercurial и запускать git status | grep "nothing to commit (working directory clean)" | grep -v grep | wc -l, и если скрипт находит измененные файлы, уведомлять вас по электронной почте.

Только что начал свой собственный проект. Надеюсь, кто-то найдёт его полезным.

sitestalker – инструмент для массового мониторинга изменений доменов/веб-сайтов с захватом экрана, галереей и уведомлениями по электронной почте.

Huginn, похоже, популярен на GitHub и, вероятно, делает то, что вам нужно.

https://github.com/huginn/huginn

2023 год настал – я бы рекомендовал https://changedetection.io, он также полностью с открытым исходным кодом на https://github.com/dgtlmoon/changedetection.io

С помощью этого приложения вы получаете уведомления, включая правильный стиль ‘патч’ (перейдите в редактирование > уведомления и выберите формат/токен diff/patch) легко 🙂

Ответ или решение

Получение уведомлений об изменениях на веб-страницах с использованием диффов

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

Проблема текущего подхода

Вы используете скрипты на OpenBSD, которые загружают веб-страницы, обрабатывают их и сохраняют изменения. Несмотря на то что данный подход работает, он может быть ненадежным и неэффективным. Основные недостатки:

  • Хрупкость скриптов: Учитывая, что в веб-разработке постоянно появляются новые технологии, скрипты могут легко сломаться при изменении структуры страницы.
  • Сложная обработка: Использование grep и других утилит требует глубоких знаний и хорошего понимания контекста.
  • Отсутствие гибкости: Ваши скрипты могут не обрабатывать подобные случайности, как динамическое содержимое и точки входа с авторизацией.

Современные решения

Существует множество инструментов, которые могут значительно упростить процесс мониторинга веб-страниц. Вот несколько из них:

  1. Changedetection.io – данный ресурс является открытым и бесплатным. Он позволяет отслеживать изменения на страницах и будет уведомлять вас о них, сохраняя при этом возможность просмотра измененных участков в формате диффа. Этот интерфейс особенно полезен, так как предоставляет визуализацию изменений.

  2. Huginn – мощное приложение для автоматизации, которое может мониторить изменения не только на веб-страницах, но и в различных источниках данных. Huginn предоставляет пользователям возможность создавать "агентов", которые автоматически реагируют на изменения.

  3. Specto – хотя проект больше не поддерживается, он предлагает удобный графический интерфейс и уведомления о изменениях в системном трее. Это отличный выбор для пользователей, которые предпочитают настольные приложения.

  4. SiteStalker – новый проект, который может отслеживать изменения на множестве доменов и отправлять уведомления по электронной почте.

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

Рекомендованный подход

Если вы хотите создать собственный скрипт для мониторинга изменений на веб-страницах, рекомендуется:

  1. Использовать cURL для загрузки содержимого страницы.
  2. Обработать полученные данные, используя фильтрацию для удаления статических или динамических элементов, которые могут вызвать ложные срабатывания.
  3. Применить хеширование для сравнения загруженной версии с предыдущей.
  4. Реализовать оповещение через электронную почту или систему уведомлений, если изменения были обнаружены.

Этот метод позволяет гибко подходить к мониторингу, учитывая специфические требования вашего проекта и устраняя ненужные уведомления.

Заключение

Мониторинг изменений на веб-страницах — это задача, требующая внимательного подхода и гибкости. С учетом существующих инструментов, как открытых, так и готовых к использованию, вы сможете значительно упростить себе жизнь и повысить эффективность мониторинга. Рекомендуется протестировать несколько подходов и выбрать наиболее подходящий для ваших нужд.

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

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

Капча загружается...