Check酱 — это универсальный инструмент для мониторинга веб-контента, который может отслеживать изменения веб-страниц и отправлять уведомления в WeChat.
Магазин приложений
Microsoft Edge | Google Chrome |
---|---|
![]() |
![]() |
Чтобы перейти на страницу магазина или выполнить поиск «Check酱», нажмите на соответствующие значки.
Официальное видеоруководство
Более длинная версия продолжительностью около 2 часов.
Заявление об открытом исходном коде
⚠️ Плагин для браузера не является открытым исходным кодом. Код в каталоге Docker предназначен только для проверки безопасности и создания многоплатформенных образов с использованием дополнительных условий лицензии GPLV3:
Последняя версия
Инструкции по установке образа Docker см. в разделе «Установка на облачной платформе».
Что такое Check酱?
Check酱 — это продукт компании Fangtang Qiqi, инструмент для отслеживания веб-контента. Он включает в себя плагин для браузера Edge/Chrome и облачную платформу, которую можно настроить самостоятельно.
На основе плагина он может отслеживать любой контент (текст) на веб-странице, за исключением уведомлений браузера, а также может быть объединён с Server酱 для отправки уведомлений в WeChat или на мобильные устройства.
Check酱 работает по принципу открытия веб-страницы в фоновом режиме через плагин для браузера. Таким образом, он полностью имитирует поведение пользователя и может отслеживать большинство динамических веб-сайтов, страниц входа и автоматически продлевать сеансы входа (в большинстве случаев).
Помимо поддержки отслеживания содержимого веб-страниц (Dom), он также поддерживает мониторинг HTTP-статуса (через GET), JSON и RSS.
В сочетании с облачной платформой, которую можно установить самостоятельно, задачи мониторинга могут быть синхронизированы с сервером, чтобы они продолжали выполняться по расписанию после закрытия браузера и компьютера.
Установка и использование плагина
Плагин можно использовать отдельно, но задачи мониторинга не будут выполняться после его закрытия.
В настоящее время Check酱 находится в стадии бета-тестирования и ещё не доступен в магазине приложений Edge. Его можно загрузить вручную.
Скачайте ZIP-файл плагина(GitHub скачать без регистрации), распакуйте его в каталог (далее именуемый A).
Откройте страницу плагинов в Edge и включите «Режим разработчика». Нажмите «Load Unpacked» и выберите каталог A, созданный на предыдущем шаге.
Если загрузка прошла успешно, вы увидите интерфейс Check酱. Если загрузка не удалась, обычно это происходит из-за добавления дополнительного уровня каталога во время распаковки. Попробуйте выбрать подкаталог каталога A.
После установки плагина откройте веб-сайт, который вы хотите отслеживать, и нажмите правую кнопку мыши. Вы увидите опцию «Определить местоположение точки мониторинга».
Нажмите на неё, чтобы инициализировать визуальный селектор.
Перемещая мышь, вы можете увидеть выделенную область. Щёлкните левой кнопкой мыши на тексте, который хотите отслеживать.
Обратите внимание, что выбранная область должна содержать текст, иначе она будет пустой. Многие тексты напечатаны на изображениях, которые также вернут пустые значения.
Вы перейдёте на страницу добавления.
Здесь вы можете изменить имя, настроить интервал мониторинга, задержку и максимальное количество повторных попыток. Прежде чем сохранить, рекомендуется нажать кнопку «Тест» в поле «Путь CSS-селектора».
Если появится сообщение «Содержимое проверки пусто», это означает, что есть проблема. Повторите попытку и наблюдайте:
Если вы обнаружите, что значок сайта не отображается после открытия, увеличьте значение «Задержка чтения» в секундах; если значок всё ещё не появляется после открытия, возможно, путь автоматического выбора, сгенерированный браузером, неверен.
Можно попробовать использовать путь выбора, автоматически сгенерированный браузером. Вот как это сделать:
① Щёлкните правой кнопкой мыши на отслеживаемом тексте и выберите «Проверить/проверить элемент».
② Откроется окно инструментов разработчика, и соответствующая строка исходного кода будет автоматически выбрана. На выбранной строке щёлкните правой кнопкой мыши и выберите «Копировать/Копировать». → «Скопировать селектор/Копировать селектор».
③ Скопируйте путь, указанный в буфере обмена, в поле «Путь селектора CSS» и снова нажмите кнопку «Тест».
После успешного тестирования нажмите «Отправить» для сохранения точки мониторинга.
Отправка уведомлений на Server酱
При добавлении и изменении точек мониторинга введите Sendkey, чтобы отправить уведомление на Server酱.
Как получить SendKey
Войдите на официальный сайт Server酱, перейдите в раздел «Ключ и API» и нажмите «Копировать».
Как отправлять уведомления на другие каналы
Войдите на официальный сайт Server酱, перейдите в раздел «Каналы конфигурации» (https://sct.ftqq.com/forward) и выберите канал, на который нужно отправить уведомление. Следуйте инструкциям на странице для настройки. Уведомления можно отправлять на PushDeer и различные боты группового чата.
Если вышеуказанные каналы не соответствуют вашим потребностям, вы можете выбрать «Пользовательский» канал и отправить настраиваемый HTTP-запрос. Этот метод совместим с большинством интерфейсов уведомлений.
Если вам нужно отправить уведомления на сторонние платформы, такие как Discord, Telegram и т. д., вы можете использовать функцию «Пользовательский канал» для отправки HTTP-запросов на эти платформы.
Импорт и экспорт всех точек мониторинга
Щёлкните на стрелки вверх и вниз в правом верхнем углу списка точек мониторинга, чтобы импортировать и экспортировать все точки мониторинга.
Поделиться и импортировать точки мониторинга
Щелкните «Буфер обмена» в списке точек мониторинга, чтобы экспортировать текущие настройки точек мониторинга в буфер обмена.
Экспортированные данные выглядят следующим образом:
checkchan://title=Server%E9%85%B1%E5%AE%98%E6%96%B9%E7%BD%91%E7%AB%99%E7%8A%B6%E6%80%81&url=https%3A%2F%2Fsct.ftqq.com&type=get&code=200&rss_field=title&delay=3&retry=10
Скопируйте приведённый выше текст и вставьте его в Check酱 с помощью Ctrl+V. Плагин автоматически распознает и откроет страницу «Добавить точку мониторинга».
Ограничение мониторинга по времени
Некоторые задачи необходимо выполнять только в определённые периоды времени. Чтобы сэкономить ресурсы, мы добавили функцию ограничения мониторинга по времени. Например, если определённое анимационное видео обновляется в 10:00 каждое утро в пятницу, вы можете установить ограничение мониторинга следующим образом:
Таким образом, мониторинг не будет запускаться в другое время. Для задач, время выполнения которых невозможно предсказать, можно использовать «Каждую минуту» по умолчанию.
Обратите внимание, что над «Ограничением мониторинга по времени» есть «Интервал мониторинга».
Если установлено «Ограничение мониторинга по времени», мониторинг будет выполняться только в заданный период времени. Для каждого интервала времени, равного 60 минутам, будет производиться попытка мониторинга. Если мониторинг успешен, то следующая попытка мониторинга будет произведена через 60 минут.
Кроме того, поскольку выполнение задачи мониторинга само по себе также требует времени, при интервале времени в 1 минуту задача обычно выполняется каждые две минуты (то есть каждые 2 минуты).
Последняя версия поддерживает новый синтаксис Selector: поскольку он реализован через document.querySelectorAll
, он возвращает все соответствующие элементы в виде массива. Когда эти элементы принадлежат одному и тому же родительскому узлу, мы можем использовать :nth-of-type(1)
или :nth-child(1)
, чтобы указать на определённый элемент в массиве.
Однако если эти элементы не принадлежат одному и тому же родительскому элементу, этот метод не сработает. Здесь добавлен синтаксис selector@n, который позволяет нам указывать на конкретный элемент из массива Selector. Например, .booklist .item@0
вернёт document.querySelectorAll(.booklist .item)[0]
.
Синтаксис @ можно использовать не только для DOM-селекторов, но и для указания результатов мониторинга RSS. По умолчанию RSS возвращает первую статью всего Feed, и вы можете добавить @1 после URL Feed, чтобы указать вторую статью (счёт начинается с 0).
Самый нижний уровень Selector возвращает один элемент, но иногда нам нужно отслеживать определённое значение атрибута этого элемента. Например, атрибут href
ссылки. Чтобы решить эту проблему, мы расширили синтаксис селектора, позволяя пользователям получать значение атрибута элемента через element%attribute. Например: article#post-180 > div > div > p > a%href
. Когда %
и @
используются вместе, %
должен следовать сразу за элементом, например: article#post-180 > div > div > p > a%href@0
.
Чтобы лучше понять, как выполняются периодические задачи, вы можете открыть «Инструменты разработчика» (F12) и посмотреть журнал выполнения задач в консоли.
Ошибки также будут отображаться здесь в виде строк, выделенных красным цветом. Предоставление скриншотов журналов ошибок при возникновении проблем может помочь нам быстрее определить источник проблемы.
После выпуска в магазин обновления могут устанавливаться автоматически. До этого момента необходимо обновлять вручную. Для обновления необходимо загрузить zip-файл, разархивировать его и перезапустить плагин в панели управления плагинами браузера.
Новое зеркало объединяет облачную и удалённую версии рабочего стола, что позволяет использовать его после однократной установки.
⚠️ Обратите внимание: поскольку сеть и среда облака отличаются от вашей локальной среды, не все задачи, которые могут выполняться локально, могут быть успешно выполнены в облаке. Некоторые сложные веб-страницы и страницы с большим количеством динамических эффектов могут привести к сбоям.
Настройка облачной версии требует технических знаний. Рекомендуется приобрести официальную облачную версию (которая будет выпущена после внутреннего тестирования).
Необходим Docker. Если у вас нет облачного сервера, вы можете рассмотреть возможность использования облачных серверов Tencent стоимостью от 30 до 50 юаней за первый заказ.
Перейдите на страницу инструментов (https://install.ftqq.com/config/checkchan).
Войдите на сервер (предположим, что его IP-адрес — IPB), создайте каталог данных в каталоге, где вы хотите установить программу, и сделайте его доступным для записи:
mkdir data && chmod 0755 data
Создайте файл docker-compose.yml и вставьте следующий код, настроив его в соответствии с инструкциями, а затем сохранив:
version: '3'
services:
chrome:
image: easychen/checkchan:latest
volumes:
- "./data:/checkchan/data"
environment:
- "CKC_PASSWD=<здесь пароль для удалённого рабочего стола, укажите свой>"
- "VDEBUG=OFF"
- "VNC=ON"
#- "WIN_WIDTH=414"
#- "WIN_HEIGHT=896"
#- "XVFB_WHD=500x896x16"
- "API_KEY=<здесь API KEY для облака, укажите свой>"
- "ERROR_IMAGE=NORMAL" # NONE,NORMAL,FULL
#- "SNAP_URL_BASE=<включите снимок экрана здесь, указав адрес сервера (без / в конце), оставьте пустым, если не требуется>..."
#- "SNAP_FULL=1"
- "TZ=Asia/Chongqing"
# - "WEBHOOK_URL=http://..." # URL-адрес Webhook в облаке, не требуется, если оставить пустым
# - "WEBHOOK_FORMAT=json" # формат POST Webhook, по умолчанию — Form
ports:
- "5900:5900"
- "8080:8080"
- "8088:80"
Замените <здесь пароль для удалённого рабочего стола>
и <здесь API KEY для облака>
на пароли C и D соответственно. Обратите внимание, что пароль не должен содержать символ $, и удалите скобки <> после замены.
Если вы не хотите запускать удалённый рабочий стол, измените VNC=ON
на VNC=OFF
.
Убедитесь, что пользователь Docker имеет права доступа к этому каталогу, и запустите следующую команду в том же каталоге:
docker-compose up -d
Если вы получаете сообщение об ошибке, связанной с Docker, попробуйте запустить команду с sudo.
Дождитесь завершения инициализации, затем перейдите по адресу http://$BBB:8080 (замените $BBB на IP B), чтобы увидеть интерфейс NoVNC.
Порты службы:
Вы также можете передать параметры docker-compose команде docker для запуска:
docker run -d -p 8088:80 -p 8080:8080 -p 5900:5900 -v ${PWD}/data:/checkchan/data -e API_KEY=123 -e VDEBUG=OFF -e VNC=ON -e SNAP_URL_BASE=http://localhost:8088 -e CKC_PASSWD=123 -e TZ=Asia/Chongqing easychen/checkchan:latest
Пожалуйста, замените 123 на желаемый пароль и замените SNAP_URL_BASE
на внешний IP-адрес вашего сервера (если вы планируете просматривать снимки экрана с мобильного устройства).
Только групповые модели с поддержкой Docker могут устанавливать Checkchan. Помимо возможности установки с использованием командной строки, вы также можете обратиться к руководству по установке с графическим интерфейсом.
Параметры тома и переменные среды можно настроить в соответствии с настройками docker/compose, описанными выше.
После обновления образа Checkchan вы можете обновить работающий облачный сервис. Вот как это сделать:
Сначала остановите текущий контейнер:
При запуске с помощью docker-compose выполните команду docker-compose down
.
При непосредственном запуске с помощью команды docker найдите идентификатор контейнера с помощью docker ps
, а затем остановите его с помощью docker stop <идентификатор контейнера>
.
Затем потяните последний образ с помощью команды docker pull
:
docker pull easychen/checkchan:latest
Завершив обновление, запустите службу.
Нажмите кнопку «Облачный сервис» в правом верхнем углу плагина.
В поле «Адрес сервера» введите http://$BBB:8088
(замените $BBB на IP B, URL не требует добавления ключа API), а в поле «API_KEY» введите пароль C.
Сохраните изменения, и после успешного подключения к облачному сервису рядом с каждой задачей в списке появится значок «компьютер», который изменится на значок «облако». Задачи, отмеченные значком «облако», будут выполняться в облачном сервисе.
Настроив облачный сервис, вернитесь на страницу списка задач. В крайнем правом столбце каждой строки будет отображаться значок «компьютер». После нажатия на него значок изменится на «облако», и задача будет выполняться в облачном сервисе.
Щелкните правой кнопкой мыши значок «облако + стрелка» в верхнем правом углу, чтобы вручную синхронизировать задачи с облачным сервисом.
Checkchan автоматически синхронизирует задачи каждые десять минут. SNAP_URL_BASE=<включите функцию скриншотов, указав здесь адрес сервера, если не нужно, оставьте пустым> #например, http://ip.com/
Можно обратиться к файлу docker-compose.yml для получения дополнительной информации. После добавления переменных среды необходимо перезапустить сервис.
Обратите внимание:
Check酱 имеет встроенный интерфейс для динамических страниц, который используется для отправки данных в RSS-канал:
http://$ip:$port/rss/upload?key=$api_key
http://$ip:$port/image/rss.xml?key=$api_key
Check酱 также имеет встроенный синхронный интерфейс для Cookie:
http://$ip:$port/cookie/sync?key=$api_key
Принцип работы облачных задач Check酱 заключается в синхронизации Cookie с облаком, после чего они могут быть просмотрены в браузере. По сути, это то же самое, что и действия пользователя. Однако, поскольку исходящий IP-адрес может быть связан с дата-центром или серверной комнатой, слишком высокая частота запросов может вызвать подозрения у системы обнаружения и предотвращения вторжений (IDS/IPS). Если развернуть облако дома, то работа будет аналогична использованию домашнего компьютера.
Обычно проблемы, когда локальные задачи выполняются успешно, а облачные — нет, связаны с различиями в сетевой среде и программном обеспечении браузера, например:
Из-за ограниченной памяти серверов по сравнению с домашними компьютерами, многие задачи, которые успешно выполняются локально, могут завершиться неудачно в облаке из-за недостаточного времени ожидания. Если возникает такая проблема, рекомендуется попробовать увеличить время ожидания.
Если эти меры не помогают, проблема может быть связана с тем, что отображение безголового браузера в облаке отличается от отображения на локальном компьютере. В этом случае мы создали снимок последней неудачной попытки. Его можно найти в меню «Облачные сервисы».
Если задача завершается неудачно и снимок не создаётся, это означает, что причина неудачи не связана с невозможностью выбора CSS-селектора. Попробуйте увеличить время ожидания, это может помочь решить проблему.
На этой странице также можно просмотреть журнал облачных задач. Этот журнал не содержит записей о задачах, запущенных вручную через кнопку «Мониторинг». Если нет доступных задач (задачи запускаются автоматически), журнал также может быть пустым.
Помимо облачного сервиса, мы также включили удалённый рабочий стол в образ. Он позволяет подключаться к серверу через VNC и использовать его так же, как локальный браузер.
Версия для удалённого рабочего стола ранее была отдельным образом, теперь она интегрирована в easychen/checkchan, поэтому вы можете использовать её напрямую.
После запуска службы можно подключиться через клиентское программное обеспечение VNC.
В удалённом рабочем столе можно напрямую подключиться к тому же контейнеру, в котором работает облако. Для этого введите http://localhost
в качестве адреса сервера и используйте API KEY, указанный в YML-файле.
Можно добавить переменные среды и изменить разрешение экрана, чтобы сделать его более удобным для мобильных устройств:
- WIN_WIDTH=414
- WIN_HEIGHT=896
- XVFB_WHD=500x896x16
Пример добавления в команду docker:
docker run -d -p 5900:5900 -v ${PWD}/data:/checkchan/data -e CKC_PASSWD=123 -e WIN_WIDTH=414 -e WIN_HEIGHT=896 -e XVFB_WHD=500x896x16 easychen/checkchan:latest
Ежедневное использование контейнера составляет 300–500 МБ. Работа в среде с большим объёмом памяти будет более стабильной, и при возникновении проблем можно попробовать увеличить объём памяти.
Используя тот же образ, можно визуально отлаживать облачные задачи. Для этого установите VDEBUG=ON
в файле YML и перезапустите контейнер, чтобы увидеть подробный процесс мониторинга веб-страниц в облаке.
environment:
- "CKC_PASSWD=123"
- "VDEBUG=ON"
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )