Check соус — это универсальный инструмент мониторинга веб-контента, который может отслеживать изменения веб-контента и отправлять изменения в WeChat.
Microsoft Край | Гугл Хром |
---|---|
Нажмите значок выше, чтобы перейти на страницу магазина, или найдите «Проверить соус» прямо в магазине.
Подробная версия, почти 2 часа
Информацию о команде установки образа Docker см. в разделе «Облачная установка» позже.
Check Sauce — это инструмент для мониторинга веб-контента, созданный Sugar Cube Balloon. Он включает в себя плагин для браузера Edge/Chrome и облако , которое можно настроить самостоятельно.
Основываясь на плагине для браузера, он теоретически может отслеживать любой контент (текст) на веб-странице с помощью визуального селектора . Помимо уведомлений браузера, он также может взаимодействовать с Server Sauce для отправки изменений в WeChat или мобильные телефоны.
Принцип Check соуса заключается в открытии веб-страниц в фоновом режиме через плагины браузера для мониторинга, тем самым полностью имитируя реальное поведение пользователей . Он может отслеживать самые сложные динамические веб-страницы, различные фоновые страницы, требующие входа в систему, и (в большинстве случаев) случаев) ) автоматически продолжает состояние входа в систему.
Помимо поддержки мониторинга содержимого веб-страниц (Dom), он также поддерживает методы HTTP-статуса (мониторинг через GET), JSON и RSS.
Благодаря облаку , которое можно настроить самостоятельно, задачи мониторинга можно синхронизировать с сервером, так что даже при закрытии браузера и компьютера задачи мониторинга могут выполняться регулярно.
Плагин можно использовать самостоятельно, но запланированная задача мониторинга не будет выполняться после его отключения.
В настоящее время Check Sauce находится на внутреннем тестировании и еще не размещен в магазине Edge. Его можно загрузить только вручную.
Загрузите ZIP-пакет плагина (адрес загрузки Github, регистрация не требуется) и разархивируйте его в каталог (далее — A).
Откройте страницу плагина Edge, откройте «Режим разработчика», нажмите «Загрузить распакованное» и выберите каталог A, извлеченный выше.
В случае успешной загрузки вы увидите интерфейс «Проверить соус». Если это не удается, это обычно вызвано дополнительным каталогом при распаковке. Вы можете попытаться повторно выбрать каталог ниже каталога A.
После установки плагина откройте веб-страницу, которую хотите отслеживать, щелкните ее правой кнопкой мыши и вы увидите пункт «Найти объект мониторинга».
После нажатия визуальный селектор начинает инициализироваться.
Наведите курсор мыши, чтобы увидеть выделенную область, поместите ее на отслеживаемый текст и щелкните левой кнопкой мыши.
Обратите внимание, что область выделения должна содержать текст, иначе будет возвращено пустое значение. На изображении напечатано много текста, который также вернет ноль.
Вы будете перенаправлены на страницу добавления.
Вы можете изменить имя, установить интервал мониторинга, задержку и максимальное количество повторов. Перед сохранением лучше всего нажать кнопку测试
после столбца CSS选择器路径
чтобы проверить его.
Если появится сообщение «Содержимое обнаружения пусто», это означает, что возникла проблема. Нажмите еще раз, чтобы увидеть:
Если вы обнаружите, что страница закрывается без появления значка после ее открытия, вы можете увеличить количество секунд «отложенного чтения», если после открытия страница по-прежнему возвращается пустой, тогда автоматически сгенерированный путь селектора может быть неверным; .
Вы можете заменить его автоматически созданным браузером следующим образом:
① Щелкните правой кнопкой мыши текст, который нужно проверить, и выберите «проверить/проверить элемент».
② В это время автоматически откроются инструменты разработчика и будет автоматически выбрана соответствующая строка элемента в исходном коде. Щелкните правой кнопкой мыши по выделенной строке и выберите «Копировать» → «Копировать селектор».
③ Введите скопированный путь к буферу обмена в строку «Путь выбора CSS» и еще раз нажмите кнопку «Тест», чтобы проверить.
После прохождения теста нажмите «Отправить», чтобы сохранить точки мониторинга.
При добавлении и изменении точек мониторинга введите ключ отправки, чтобы отправить сообщение на сервер.
Войдите на официальный сайт Server Sauce, введите «Key&API» и нажмите кнопку «Копировать».
Авторизуйтесь на официальном сайте Server Sauce, войдите в «Конфигурацию канала», выберите канал для отправки и настройте его согласно инструкциям на странице. Сообщения можно отправлять «PushDeer» и различным групповым роботам.
Если вышеуказанные каналы не могут удовлетворить ваши потребности, вы можете выбрать «пользовательский» канал и отправить индивидуальный 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
После копирования вышеуказанных символов вставьте их с помощью Ctrl+V в интерфейс плагина браузера «Проверка», и он автоматически распознает и перейдет к интерфейсу «Добавить точку мониторинга».
Некоторые задачи необходимо выполнять только в течение определенного периода времени. В целях экономии ресурсов мы добавили функцию «ограничение цикла мониторинга». Например, если анимация обновляется каждую пятницу в 10 утра, то мы можем установить «лимит цикла мониторинга» следующим образом:
Таким образом, мониторинг больше не будет запускаться в другие периоды времени. Для задач с непредсказуемыми периодами событий просто используйте значение по умолчанию «каждую минуту».
Обратите внимание, что помимо «предела цикла мониторинга» существует также «интервал мониторинга».
Если «Ограничение периода мониторинга» установлено каждую минуту, а «Интервал мониторинга» — 60 минут, то попытка мониторинга будет осуществляться каждую минуту, и как только мониторинг будет успешным, следующий мониторинг будет через 60 минут.
В то же время, поскольку выполнение самой задачи мониторинга требует времени, когда «интервал мониторинга» составляет 1 минуту, задача обычно будет запускаться только каждую минуту (то есть каждые две минуты).
Последняя версия поддерживает синтаксис расширения Selector: поскольку базовый уровень реализуется через document.querySelectorAll
, все соответствующие элементы будут возвращены в массиве. Когда эти элементы принадлежат одному и тому же родительскому узлу, мы можем использовать :nth-of-type(1)
или :nth-child(1)
для указания элемента в массиве.
Но если эти элементы не принадлежат одному и тому же родительскому узлу, то описанный выше метод потерпит неудачу. Здесь добавлен синтаксис selector@n, позволяющий нам указать элемент из массива, возвращаемого Selector. Например, .booklist .item@0
вернет document.querySelectorAll(.booklist .item)[0]
.
Помимо использования в селекторах DOM, синтаксис @ также можно использовать для указания результатов мониторинга RSS. По умолчанию RSS возвращает первую статью всего канала. Вы можете добавить @1 после URL-адреса канала, чтобы указать его для отслеживания второй статьи (отсчет по-прежнему начинается с 0).
Самый низкий уровень Selector возвращает элемент, но иногда нам нужно отслеживать определенное значение атрибута этого элемента. Например, отслеживайте href
ссылки. Чтобы решить эту проблему, мы расширили синтаксис селектора, чтобы пользователи могли получать значение атрибута элемента через element%attribute. Например: article#post-180 > div > div > p > a%href
. Когда %
и @
используются одновременно, %
должен следовать за элементом, например: article#post-180 > div > div > p > a%href@0
.
Чтобы иметь более четкое представление о выполнении запланированных задач, вы можете открыть «Инструменты разработчика» (F12) и просмотреть журналы, созданные задачами, на вкладке Console
.
Информация об ошибках также будет отображаться здесь в выделенных красным строках. При обнаружении ошибки предоставление снимков экрана ошибок журнала может помочь нам быстрее обнаружить проблему.
После размещения в магазине его можно автоматически обновить. До этого требуется обновление вручную. Метод обновления состоит в том, чтобы загрузить zip-пакет, разархивировать его, перезаписать исходный файл, а затем «перезагрузить» его в панели управления плагинами браузера.
В новой версии образа интегрированы версии облака и удаленного рабочего стола, и ее можно использовать только при одной установке.
️ Особое примечание. Поскольку сеть и среда облака отличаются от сети и среды локального компьютера, нет никакой гарантии, что задачи, которые можно запускать на локальном компьютере, будут успешно выполняться в облаке. Некоторые сложные веб-страницы и веб-страницы с. более динамичные эффекты могут оказаться неудачными.
Для установки самостоятельно устанавливаемой версии облака требуется техническая подготовка. Нетехническим пользователям рекомендуется приобрести нашу официальную версию облака (будет выпущена после завершения внутреннего тестирования).
Требуется среда докера. Если у вас нет облачного сервера, вы можете воспользоваться серверами Tencent Cloud по специальной цене от 30 до 50 юаней за первый заказ.
Нажмите здесь, чтобы войти в интерфейс инструмента
Войдите на сервер (при условии, что его IP-адрес — IPB), создайте новые data
каталога в каталоге, который будет установлен, и сделайте его доступным для записи:
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://..." # 云端 Webhook地址,不需要则不用设置
# - "WEBHOOK_FORMAT=json" # 云端 Webhook POST 编码,默认是 Form
ports :
- " 5900:5900 "
- " 8080:8080 "
- " 8088:80 "
Замените <这里是远程桌面的密码,写一个你自己想的>
и <这里是云端的API KEY,写一个你自己想的>
на пароли, которые другие не знают (далее пароли C и D). Будьте осторожны и не включайте символ $
: после замены угловых скобок <>
больше не будет.
Если вы не хотите запускать удаленный рабочий стол, измените VNC=ON
на VNC=OFF
.
Убедитесь, что у пользователя Docker есть права на запись в этот каталог, и выполните следующую команду в том же каталоге:
docker-compose up -d
Если появится сообщение о том, что служба Docker не установлена/не найдена/не запущена, вы можете добавить sudo перед компоновкой docker и повторить попытку.
Дождавшись завершения инициализации, посетите 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-адресом сервера (если вы хотите просмотреть снимок экрана на своем мобильном телефоне).
Только модели Synology, поддерживающие Docker, могут установить Check Sauce. Помимо установки непосредственно через командную строку, вы также можете обратиться к руководству по установке с графическим интерфейсом.
Переменные Volume
и среды могут ссылаться на приведенные выше настройки Docker/Compose.
После обновления облачного образа Check Sauce вы можете обновить работающую облачную службу до последней версии. Вот как:
Сначала остановите существующий контейнер:
Запускаем через docker-compose:
docker-compose down
Запустите docker ps
, запущенный напрямую Docker, чтобы запросить идентификатор контейнера, и остановитесь по docker stop 容器id
.
Затем запустите docker pull, чтобы получить последнюю версию:
docker pull easychen/checkchan:latest
После завершения просто запустите службу.
Нажмите云端服务
в меню в правом верхнем углу плагина.
В столбце服务器地址
введите http://$BBB:8088
(замените $BBB на IP B, здесь не нужно добавлять ключевые параметры в URL-адрес и введите пароль C в столбце API_KEY
);
Нажмите «Сохранить». После успешного подключения настройка будет завершена.
После настройки облака вернитесь на страницу списка. В крайнем правом углу каждой строки появится дополнительный значок «Компьютер». При нажатии он превратится в значок «Облако», и задача будет выполнена в облаке. вместо.
Нажмите кнопку «Облако + Стрелка» в правом верхнем углу, чтобы активировать синхронизацию задач с облаком.
Проверка соуса также будет автоматически синхронизироваться каждые десять минут.
Самоустанавливающееся облако Check соуса поддерживает создание снимков экрана задач типа веб-страницы (dom), что можно включить, передав переменные среды в изображение:
Пожалуйста, обратитесь к docker-compser.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 Sauce заключается в синхронизации файлов cookie с облаком и последующем просмотре их браузером. Суть та же, что и у пользователя. Однако, поскольку экспортными IP-адресами могут быть компьютерные залы и центры обработки данных, существует возможность контроля риска, если частота слишком высока. Если облако развернуто дома, эффект будет таким же, как при доступе к нему на домашнем компьютере.
Вообще говоря, проблема, заключающаяся в том, что локальные задачи могут выполняться, но не могут выполняться в облаке, связана с различиями в сетевых средах и программном обеспечении браузера между ними, например:
Поскольку память сервера обычно не такая большая, как у наших компьютеров, многие задачи, которые выполняются нормально локально, завершаются сбоем на полпути из-за того, что секунды «отложенного чтения» слишком малы при синхронизации с облаком. Если вы столкнулись с подобной ситуацией, попробуйте добавить «отложенное чтение».
Если это не работает, то это часто происходит из-за различий между веб-страницей, отображаемой облачным браузером без браузера, и локальной. Для этой ситуации мы создали снимок экрана самой последней неудачной задачи, который можно увидеть в разделе «. Меню «Облачный сервис».
Нажмите кнопку «Снимок экрана с ошибкой», чтобы увидеть его. Примечание. Вам необходимо использовать только последнее изображение и передать переменную среды ERROR_IMAGE=NORMAL
. Если вы хотите получить изображение всей веб-страницы, вы можете передать ERROR_IMAGE=FULL
.
Если задача не выполнена и скриншот отсутствует, это означает, что задача не выполнена, потому что не был выбран CSS-селектор. Попробуйте добавить «отложенное чтение», чтобы решить проблему.
На этой странице вы также можете просмотреть журнал облачных задач. Здесь не учитываются задачи, запущенные при нажатии кнопки «Мониторинг» вручную. Если нет задач, которые можно выполнить (задачи запускаются регулярно), журнал также может быть пустым.
Помимо собственного облака, мы также интегрировали в образ режим удаленного рабочего стола. Он позволяет подключаться к серверу через VNC и использовать его как локальный браузер.
Версия удаленного рабочего стола раньше представляла собой отдельный образ, но теперь интегрирована в easychen/checkchan, поэтому вы можете использовать ее напрямую.
После запуска службы ее можно подключить через клиентское программное обеспечение VNC.
На удаленном рабочем столе вы можете напрямую подключиться к облаку в том же контейнере. Введите http://localhost
в качестве адреса сервера и введите КЛЮЧ API, как указано в 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
в файле YML значение ON
, а затем перезапустите контейнер, чтобы просмотреть подробный процесс веб-страниц облачного мониторинга.
environment :
- " CKC_PASSWD=123 "
- " VDEBUG=ON "