Check sauce es una herramienta general de monitoreo de contenido web que puede monitorear los cambios de contenido web y enviar cambios a WeChat.
Borde de Microsoft | Google Chrome |
---|---|
Haga clic en el icono de arriba para ingresar a la página de la tienda o busque "Check Sauce" directamente en la tienda.
Versión detallada, casi 2 horas.
Para conocer el comando de instalación de la imagen de Docker, consulte la sección de instalación en la nube más adelante.
Check Sauce es una herramienta de monitoreo de contenido web producida por Sugar Cube Balloon. Incluye un complemento del navegador Edge/Chrome y una nube que usted mismo puede configurar.
Basado en un complemento del navegador, en teoría puede monitorear cualquier contenido (texto) en la página web a través de un selector visual . Además de las notificaciones del navegador, también puede cooperar con Server Sauce para enviar cambios a WeChat o teléfonos móviles.
El principio de Check Sauce es abrir páginas web en segundo plano a través de complementos del navegador para monitorear, simulando así completamente el comportamiento real de los usuarios . Puede monitorear las páginas web dinámicas más complejas, varias páginas en segundo plano que requieren inicio de sesión y (en la mayoría de los casos. casos) ) continúa automáticamente el estado de inicio de sesión.
Además de admitir el monitoreo del contenido de la página web (Dom), también admite el estado HTTP (monitoreo a través de métodos GET), JSON y RSS.
Con la nube que usted mismo puede configurar, las tareas de monitoreo se pueden sincronizar con el servidor, de modo que cuando el navegador y la computadora estén cerrados, las tareas de monitoreo aún puedan ejecutarse regularmente.
El complemento se puede utilizar de forma independiente, pero la tarea de supervisión programada no se ejecutará una vez desactivado.
Check Sauce se encuentra actualmente en prueba interna y aún no se ha colocado en la tienda Edge. Solo se puede cargar manualmente.
Descargue el paquete ZIP del complemento (dirección de descarga de Github, no es necesario registrarse) y extráigalo a un directorio (en lo sucesivo, A).
Abra la página del complemento Edge, abra el "Modo de desarrollador", haga clic en "Cargar desempaquetado" y seleccione el directorio A extraído anteriormente.
Si se carga correctamente, podrá ver la interfaz Check sauce. Si falla, generalmente se debe a un directorio adicional al descomprimir. Puede intentar volver a seleccionar el directorio debajo del directorio A.
Después de instalar el complemento, abra la página web que desea monitorear, haga clic derecho en la página web y verá el elemento "Ubicar objeto de monitoreo".
Después de hacer clic, el selector visual comienza a inicializarse.
Mueva el mouse para ver el área resaltada, colóquelo sobre el texto a monitorear y haga clic con el botón izquierdo del mouse.
Tenga en cuenta que el área de selección debe contener texto; de lo contrario, se devolverá vacío. Hay mucho texto impreso en la imagen, que también devolverá nulo.
Serás redireccionado a la página de agregar.
Puede modificar el nombre, establecer el intervalo de monitoreo, el retraso y el número máximo de reintentos. Antes de guardar, es mejor hacer clic en el botón测试
después de CSS选择器路径
para probarlo.
Si indica "El contenido de detección está vacío", significa que hay un problema. Haga clic nuevamente para observar:
Si descubre que la página está cerrada sin que aparezca el favicon después de abrirla, puede aumentar la cantidad de segundos de "lectura retrasada" si aún regresa vacía después de abrirla, entonces la ruta del selector generada automáticamente en este momento puede ser incorrecta; .
Puedes reemplazarlo por uno generado automáticamente por el navegador, de la siguiente manera:
① Haga clic derecho en el texto a inspeccionar y seleccione "inspeccionar/inspeccionar elemento"
② En este momento, las herramientas de desarrollador se abrirán automáticamente y se seleccionará automáticamente la línea correspondiente del elemento en el código fuente. Haga clic derecho en la línea resaltada y seleccione "Copiar" → "Selector de copia"
③ Después de completar la ruta copiada al portapapeles en la línea "Ruta del selector CSS", haga clic en el botón "Probar" nuevamente para probar.
Después de que pase la prueba, haga clic en "Enviar" para guardar los puntos de monitoreo.
Al agregar y modificar puntos de monitoreo, complete la clave de envío para enviar el mensaje al servidor.
Inicie sesión en el sitio web oficial de Server Sauce, ingrese "Clave y API" y haga clic en el botón "Copiar".
Inicie sesión en el sitio web oficial de Server Sauce, ingrese a "Configuración de canal", seleccione el canal que desea enviar y configúrelo de acuerdo con las instrucciones de la página. Los mensajes se pueden enviar a "PushDeer" y a varios robots del grupo.
Si los canales anteriores no pueden satisfacer sus necesidades, puede seleccionar el canal "personalizado" y enviar una solicitud http personalizada. Este método es compatible con la mayoría de las interfaces de notificación.
Haga clic en las flechas hacia arriba y hacia abajo en la parte superior derecha de la lista de puntos de monitoreo para importar y exportar todos los puntos de monitoreo.
Haga clic en "Portapapeles" en la lista de puntos de monitoreo para exportar la configuración del punto de monitoreo actual al portapapeles.
Los datos de exportación se ven así:
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
Después de copiar los caracteres anteriores, péguelos mediante Ctrl+V en la interfaz del complemento Comprobar el navegador, y automáticamente reconocerá y saltará a la interfaz "Agregar punto de monitoreo".
Algunas tareas solo deben ejecutarse durante un período de tiempo específico. Para ahorrar recursos, hemos agregado la función "límite del ciclo de monitoreo". Por ejemplo, si una animación se actualiza todos los viernes a las 10 a.m., entonces podemos establecer el "límite del ciclo de seguimiento" de la siguiente manera:
De esta forma ya no se iniciará el seguimiento en otros periodos horarios. Para tareas con períodos de eventos impredecibles, simplemente use el valor predeterminado "cada minuto".
Tenga en cuenta que además del "límite del ciclo de seguimiento", también hay un "intervalo de seguimiento".
Si el "límite del ciclo de monitoreo" es cada minuto y el "intervalo de monitoreo" es de 60 minutos, entonces el monitoreo se intentará cada minuto y, una vez que el monitoreo sea exitoso, el siguiente monitoreo será 60 minutos más tarde.
Al mismo tiempo, debido a que la ejecución de la tarea de monitoreo en sí lleva tiempo, cuando el "intervalo de monitoreo" es de 1 minuto, la tarea generalmente solo se ejecutará cada un minuto (es decir, cada dos minutos).
La última versión admite una sintaxis de extensión Selector: dado que la capa subyacente se implementa a través de document.querySelectorAll
, todos los elementos coincidentes se devolverán en una matriz. Cuando estos elementos pertenecen al mismo nodo principal, podemos usar :nth-of-type(1)
o :nth-child(1)
para especificar un elemento en la matriz.
Pero si estos elementos no pertenecen al mismo nodo principal, el método anterior fallará. Aquí se agrega una sintaxis selector@n, que nos permite especificar un elemento de la matriz devuelta por Selector. Por ejemplo, .booklist .item@0
devolverá document.querySelectorAll(.booklist .item)[0]
.
Además de usarse en selectores DOM, la sintaxis @ también se puede usar para especificar resultados de monitoreo RSS. De forma predeterminada, RSS devolverá el primer artículo del feed completo. Puede agregar @1 después de la URL del feed para especificarlo y monitorear el segundo artículo (el conteo aún comienza desde 0).
El nivel más bajo de Selector devuelve un elemento, pero a veces necesitamos monitorear un determinado valor de atributo de este elemento. Por ejemplo, monitoree href
de un enlace. Para resolver este problema, ampliamos la sintaxis del selector para permitir a los usuarios obtener un valor de atributo de un elemento a través del elemento% atributo. Por ejemplo: article#post-180 > div > div > p > a%href
. Cuando %
y @
se usan al mismo tiempo, %
debe seguir al elemento, como por ejemplo: article#post-180 > div > div > p > a%href@0
.
Para tener una comprensión más clara de la ejecución de las tareas programadas, puede abrir "Herramientas de desarrollador" (F12) y ver los registros generados por las tareas en Console
.
La información del error también se mostrará aquí en líneas resaltadas en rojo. Cuando encontramos un error, proporcionar capturas de pantalla del error de registro puede ayudarnos a localizar el problema más rápido.
Después de colocarlo en la tienda, se puede actualizar automáticamente. Antes de eso, se requiere una actualización manual. El método de actualización consiste en descargar el paquete zip, descomprimirlo, sobrescribir el archivo original y luego "volverlo a cargar" en el panel de administración de complementos del navegador.
La nueva versión de la imagen ha integrado las versiones en la nube y de escritorio remoto, y se puede utilizar con una sola instalación.
️ Nota especial: debido a que la red y el entorno de la nube son diferentes de los de la máquina local, no hay garantía de que las tareas que puede ejecutar la máquina local se ejecuten correctamente en la nube. Algunas páginas web complejas y páginas web con. los efectos más dinámicos pueden fallar.
La configuración de una versión autoinstalada de la nube requiere una base técnica. Se recomienda a los usuarios sin conocimientos técnicos que compren nuestra versión oficial de la nube (se lanzará una vez completadas las pruebas internas).
Requiere un entorno acoplable. Si no tiene un servidor en la nube, puede consultar los servidores de precio especial de Tencent Cloud por 30 a 50 yuanes para el primer pedido.
Haga clic aquí para ingresar a la interfaz de la herramienta
Inicie sesión en el servidor (suponiendo que su IP sea IPB), cree un nuevo directorio data
en el directorio que se instalará y hágalo escribible:
mkdir data && chmod 0755 data
Cree un nuevo archivo docker-compose.yml
, ajuste el siguiente contenido según se le solicite, péguelo y guárdelo:
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 "
Reemplace <这里是远程桌面的密码,写一个你自己想的>
y <这里是云端的API KEY,写一个你自己想的>
con contraseñas que otros no conocen (en lo sucesivo, contraseñas C y D). Tenga cuidado de no incluir el carácter $
, ya que no habrá más corchetes angulares <>
después del reemplazo.
Si no desea iniciar el escritorio remoto, cambie VNC=ON
a VNC=OFF
.
Asegúrese de que el usuario de Docker tenga permisos de escritura en este directorio y ejecute el siguiente comando en el mismo directorio:
docker-compose up -d
Si le indica que el servicio Docker no está instalado/no encontrado/no iniciado, puede agregar sudo antes de Docker-compose e intentarlo nuevamente.
Después de esperar a que se complete la inicialización, visite http://$BBB:8080
(reemplace $BBB con IP B). Cuando vea la interfaz web de NoVNC, significa que el contenedor se ha iniciado.
El puerto donde se encuentra el servicio es:
También puedes pasar los parámetros en docker-compose
a Docker para comenzar:
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
Reemplace 123 en el comando anterior con la contraseña que desea establecer y reemplace SNAP_URL_BASE
con la IP externa del servidor (si desea ver la captura de pantalla en su teléfono móvil).
Solo los modelos de Synology que admiten Docker pueden instalar Check Sauce. Además de instalarlo directamente a través de la línea de comandos, también puede consultar el tutorial de instalación de la GUI.
Las variables Volume
y entorno pueden hacer referencia a la configuración de Docker/Compose anterior.
Una vez actualizada la imagen de la nube de Check Sauce, puede actualizar el servicio de nube en ejecución a la última versión. He aquí cómo:
Primero detenga el contenedor existente:
Ejecutar a través de Docker-compose:
docker-compose down
Ejecute docker ps
iniciado directamente por docker para consultar el ID del contenedor y deténgase mediante docker stop 容器id
.
Luego ejecute Docker Pull para obtener la última versión:
docker pull easychen/checkchan:latest
Una vez completado, simplemente inicie el servicio.
Haga clic en云端服务
en el menú en la parte superior derecha del complemento.
Ingrese http://$BBB:8088
en la columna服务器地址
(reemplace $BBB con IP B, no es necesario agregar parámetros clave a la URL aquí, ingrese la contraseña C en la columna API_KEY
);
Haga clic en Guardar. Una vez que la conexión sea exitosa, se completará la configuración.
Después de configurar la nube, regrese a la página de lista. Habrá un ícono de "Computadora" adicional en el extremo derecho de cada fila. Cuando se haga clic, se convertirá en un ícono de "Nube" y la tarea se ejecutará en la nube. en cambio.
Haga clic en el botón "Nube + Flecha" en la esquina superior derecha para sincronizar activamente las tareas con la nube.
Check sauce también se sincronizará automáticamente cada diez minutos.
La nube autoinstalada de Check Sauce admite la toma de capturas de pantalla de tareas de tipo página web (dom), que se pueden habilitar pasando variables de entorno a la imagen:
Consulte docker-compser.yml
arriba. Simplemente agregue la variable de entorno y reinicie el servicio.
Aviso
La nube autohospedada de Check Sauce tiene una interfaz incorporada para enlaces ascendentes RSS de páginas dinámicas:
http://$ip:$port/rss/upload?key=$api_key
http://$ip:$port/image/rss.xml?key=$api_key
Check sauce tiene una interfaz incorporada para la sincronización de cookies en la nube:
http://$ip:$port/cookie/sync?key=$api_key
El principio de la tarea en la nube de Check Sauce es sincronizar las cookies con la nube y luego verlas con un navegador. La esencia es la misma que la operación del usuario. Sin embargo, debido a que la IP de exportación puede ser salas de computadoras y centros de datos, existe la posibilidad de controlar el riesgo si la frecuencia es demasiado alta. Si la nube se implementa en casa, el efecto es el mismo que acceder a ella desde una computadora doméstica.
En términos generales, el problema de que las tareas locales se pueden ejecutar pero no se pueden ejecutar en la nube se debe a diferencias en los entornos de red y el software del navegador entre los dos, como por ejemplo:
Dado que la memoria del servidor generalmente no es tan grande como la de la computadora de todos, muchas tareas que están bien cuando se ejecutan localmente fallarán a mitad de camino porque los segundos de "lectura retrasada" son demasiado pequeños después de sincronizarse con la nube. Si se encuentra con una situación similar, intente agregar "lectura retrasada".
Si esto no funciona, a menudo es porque existen diferencias entre la página web que muestra el navegador sin cabeza en la nube y la local. Para esta situación, generamos una captura de pantalla de la tarea fallida más reciente, que se puede ver en ". Menú "Servicio en la nube".
Haga clic en el botón "Captura de pantalla fallida" para verlo. Nota: Debe utilizar solo la imagen más reciente y pasar ERROR_IMAGE=NORMAL
. Si desea capturar una imagen de una página web completa, puede pasar ERROR_IMAGE=FULL
.
Si la tarea falla y no hay captura de pantalla, significa que la tarea no falló porque no se presionó el selector de CSS. Intente agregar "lectura retrasada" para resolver el problema.
También puede ver el registro de tareas en la nube en esta página. El registro aquí no incluye las tareas activadas al hacer clic manualmente en el botón "Supervisar". Si no hay tareas que se puedan ejecutar (las tareas se activan periódicamente), es posible que el registro también esté vacío.
Además de nuestra propia nube, también integramos el modo de escritorio remoto en la imagen. Le permite conectarse al servidor a través de VNC y usarlo como un navegador local.
La versión de escritorio remoto anteriormente era una imagen independiente, pero ahora está integrada en easychen/checkchan, por lo que puedes usarla directamente.
Una vez iniciado el servicio, se puede conectar a través del software cliente VNC.
En el escritorio remoto, puede conectarse directamente a la nube en el mismo contenedor. Complete http://localhost
como dirección del servidor e ingrese la CLAVE API como se establece en el YML anterior.
Puede agregar variables de entorno y modificar las restricciones de ancho y alto de la pantalla para facilitar su uso en teléfonos móviles:
- WIN_WIDTH=414
- WIN_HEIGHT=896
- XVFB_WHD=500x896x16
Un ejemplo agregado al comando 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
El consumo diario de contenedores es de 300M~500M. Un entorno en ejecución con mayor memoria será más estable. Si encuentra problemas, puede intentar aumentar la memoria.
Puede utilizar la nube integrada en la misma imagen para depurar visualmente las tareas de la nube. Configure VDEBUG
en el archivo YML en ON
y luego reinicie el contenedor para ver el proceso detallado de las páginas web de monitoreo de la nube.
environment :
- " CKC_PASSWD=123 "
- " VDEBUG=ON "