Check Sauce é uma ferramenta geral de monitoramento de conteúdo da web que pode monitorar alterações no conteúdo da web e enviar alterações para o WeChat
Microsoft borda | Google Chrome |
---|---|
Clique no ícone acima para entrar na página da loja ou pesquise “Check Sauce” diretamente na loja
Versão detalhada, quase 2 horas
Para o comando de instalação da imagem Docker, consulte a seção de instalação na nuvem posteriormente.
Check Sauce é uma ferramenta de monitoramento de conteúdo da web produzida pela Sugar Cube Balloon. Ela inclui um plug-in de navegador Edge/Chrome e uma nuvem que pode ser configurada por você.
Baseado em um plug-in de navegador, ele pode teoricamente monitorar qualquer conteúdo (texto) na página da web por meio de um seletor visual . Além das notificações do navegador, ele também pode cooperar com o Server Sauce para enviar alterações para o WeChat ou telefones celulares.
O princípio do Check Sauce é abrir páginas da web em segundo plano por meio de plug-ins de navegador para monitoramento, simulando completamente o comportamento real dos usuários . Ele pode monitorar páginas da web dinâmicas mais complexas, várias páginas de fundo que exigem login e (na maioria). cases) ) continua automaticamente o estado de login.
Além de suportar o monitoramento de conteúdo de páginas web (Dom), também suporta status HTTP (monitoramento através de métodos GET), JSON e RSS.
Com a nuvem que pode ser configurada por você mesmo, as tarefas de monitoramento podem ser sincronizadas com o servidor, para que quando o navegador e o computador estiverem fechados, as tarefas de monitoramento ainda possam ser executadas regularmente.
O plug-in pode ser usado de forma independente, mas a tarefa de monitoramento agendada não será executada após ser desligado.
O Check Sauce está atualmente em testes internos e ainda não foi colocado na loja Edge. Ele só pode ser carregado manualmente.
Baixe o pacote ZIP do plug-in (endereço de download do Github, sem necessidade de registro) e extraia-o em um diretório (doravante denominado A).
Abra a página do plug-in Edge, abra "Modo de desenvolvedor", clique em "Carregar descompactado" e selecione o diretório A extraído acima.
Se carregado com sucesso, você poderá ver a interface do Check Sauce. Se falhar, geralmente é causado por um diretório extra durante a descompactação. Você pode tentar selecionar novamente o diretório abaixo do diretório A.
Após instalar o plug-in, abra a página que deseja monitorar, clique com o botão direito na página e você verá o item “Localizar objeto de monitoramento”.
Após clicar, o seletor visual começa a ser inicializado.
Mova o mouse para visualizar a área destacada, posicione-a sobre o texto a ser monitorado e clique com o botão esquerdo do mouse.
Observe que a área de seleção deve conter texto, caso contrário será retornado vazio. Há muito texto impresso na imagem, que também retornará nulo.
Você será encaminhado para a página de adição.
Você pode modificar o nome, definir o intervalo de monitoramento, atraso e número máximo de novas tentativas. Antes de salvar, é melhor clicar no botão测试
após CSS选择器路径
para testá-lo.
Se aparecer “O conteúdo da detecção está vazio”, significa que há um problema. Clique novamente para observar:
Se você descobrir que a página é fechada sem que o favicon apareça após ser aberta, você pode aumentar o número de segundos de "leitura atrasada" se ela ainda retornar vazia após a abertura, então o caminho do seletor gerado automaticamente agora pode estar incorreto; .
Você pode substituí-lo por um gerado automaticamente pelo navegador, da seguinte forma:
① Clique com o botão direito no texto a ser inspecionado e selecione "inspecionar/inspecionar elemento"
② Neste momento, as ferramentas do desenvolvedor serão abertas automaticamente e a linha correspondente do elemento no código-fonte será selecionada automaticamente. Clique com o botão direito na linha destacada e selecione "Copiar" → "Seletor de cópia"
③ Após preencher o caminho copiado para a área de transferência na linha "CSS Selector Path", clique no botão "Test" novamente para testar.
Após a aprovação do teste, clique em “Enviar” para salvar os pontos de monitoramento.
Ao adicionar e modificar pontos de monitoramento, preencha a Sendkey para enviar a mensagem ao servidor.
Faça login no site oficial do Server Sauce, digite "Key&API" e clique no botão "Copiar".
Faça login no site oficial do Server Sauce, entre em “Configuração do Canal”, selecione o canal a ser enviado e configure-o conforme as instruções da página. As mensagens podem ser enviadas para "PushDeer" e vários robôs de grupo.
Se os canais acima não atenderem às suas necessidades, você poderá selecionar o canal "personalizado" e enviar uma solicitação http personalizada. Este método é compatível com a maioria das interfaces de notificação.
Clique nas setas para cima e para baixo no lado superior direito da lista de pontos de monitoramento para importar e exportar todos os pontos de monitoramento.
Clique em “Área de transferência” na lista de pontos de monitoramento para exportar as configurações do ponto de monitoramento atual para a área de transferência.
Os dados de exportação são assim:
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
Depois de copiar os caracteres acima, cole-os através de Ctrl+V na interface do plug-in do navegador Check, e ele irá reconhecer automaticamente e pular para a interface "Adicionar Ponto de Monitoramento".
Algumas tarefas só precisam ser executadas durante um período específico. Para economizar recursos, adicionamos a função "limite do ciclo de monitoramento". Por exemplo, se uma animação for atualizada toda sexta-feira às 10h, podemos definir o “limite do ciclo de monitoramento” da seguinte forma:
Desta forma, o monitoramento não será mais iniciado em outros períodos de tempo. Para tarefas com períodos de eventos imprevisíveis, basta usar o padrão “a cada minuto”.
Observe que além do “limite do ciclo de monitoramento”, existe também um “intervalo de monitoramento”.
Se o "limite do ciclo de monitoramento" for a cada minuto e o "intervalo de monitoramento" for de 60 minutos, então o monitoramento será tentado a cada minuto e, quando o monitoramento for bem-sucedido, o próximo monitoramento será realizado 60 minutos depois.
Ao mesmo tempo, como a execução da tarefa de monitoramento em si leva tempo, quando o “intervalo de monitoramento” é de 1 minuto, a tarefa normalmente só será executada a cada um minuto (ou seja, a cada dois minutos).
A versão mais recente suporta uma sintaxe de extensão Selector: como a camada subjacente é implementada por meio de document.querySelectorAll
, todos os elementos correspondentes serão retornados em uma matriz. Quando esses elementos pertencem ao mesmo nó pai, podemos usar :nth-of-type(1)
ou :nth-child(1)
para especificar um item no array.
Mas se esses elementos não pertencerem ao mesmo nó pai, o método acima falhará. Uma sintaxe selector@n é adicionada aqui, permitindo-nos especificar um elemento do array retornado por Selector. Por exemplo, .booklist .item@0
retornará document.querySelectorAll(.booklist .item)[0]
.
Além de ser usada em seletores DOM, a sintaxe @ também pode ser usada para especificar resultados de monitoramento RSS. Por padrão, o RSS retornará o primeiro artigo de todo o feed. Você pode adicionar @1 após o URL do feed para especificá-lo para monitorar o segundo artigo (a contagem ainda começa em 0).
O nível mais baixo do Seletor retorna um elemento, mas às vezes precisamos monitorar um determinado valor de atributo deste elemento. Por exemplo, monitore href
de um link. Para resolver este problema, estendemos a sintaxe do seletor para permitir que os usuários obtenham um valor de atributo de um elemento por meio de elemento%atributo. Por exemplo: article#post-180 > div > div > p > a%href
. Quando %
e @
são usados ao mesmo tempo, %
deve seguir o elemento, como: article#post-180 > div > div > p > a%href@0
.
Para ter uma compreensão mais clara da execução das tarefas agendadas, você pode abrir “Ferramentas do Desenvolvedor” (F12) e ver os logs gerados pelas tarefas na aba Console
.
As informações de erro também serão exibidas em linhas destacadas em vermelho aqui. Ao encontrar um bug, fornecer capturas de tela de erros de registro pode nos ajudar a localizar o problema mais rapidamente.
Depois de colocado na loja, ele pode ser atualizado automaticamente. Antes disso, é necessária a atualização manual. O método de atualização consiste em baixar o pacote zip, descompactá-lo, sobrescrever o arquivo original e, em seguida, “recarregá-lo” no painel de gerenciamento de plug-ins do navegador.
A nova versão da imagem integrou as versões nuvem e desktop remoto, podendo ser utilizada com apenas uma instalação.
️ Nota especial: Como a rede e o ambiente da nuvem são diferentes daqueles da máquina local, não há garantia de que as tarefas que podem ser executadas pela máquina local serão executadas com êxito na nuvem. Algumas páginas da web complexas e páginas da web com. efeitos mais dinâmicos podem falhar.
A configuração de uma versão auto-instalada da nuvem requer base técnica. Recomenda-se que usuários não técnicos comprem nossa versão oficial da nuvem (será lançada após a conclusão dos testes internos).
Requer ambiente docker. Se você não possui um servidor em nuvem, pode verificar os servidores com preços especiais da Tencent Cloud por 30 a 50 yuans para o primeiro pedido.
Clique aqui para entrar na interface da ferramenta
Faça login no servidor (assumindo que seu IP seja IPB), crie um novo diretório de data
no diretório a ser instalado e torne-o gravável:
mkdir data && chmod 0755 data
Crie um novo arquivo docker-compose.yml
, ajuste o seguinte conteúdo conforme solicitado, cole e salve:
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 "
Substitua <这里是远程桌面的密码,写一个你自己想的>
e <这里是云端的API KEY,写一个你自己想的>
por senhas que outras pessoas não conhecem (doravante denominadas senhas C e D). Tenha cuidado para não incluir o caractere $
, e não haverá mais colchetes <>
após a substituição.
Se você não deseja iniciar a área de trabalho remota, altere VNC=ON
para VNC=OFF
.
Certifique-se de que o usuário do Docker tenha permissões de gravação neste diretório e execute o seguinte comando no mesmo diretório:
docker-compose up -d
Se for solicitado que o serviço docker não esteja instalado/não encontrado/não iniciado, você poderá adicionar sudo antes do docker-compose e tentar novamente.
Após aguardar a conclusão da inicialização, visite http://$BBB:8080
(substitua $BBB por IP B). Quando você vir a interface Web NoVNC, significa que o contêiner foi iniciado.
O porto onde o serviço está localizado é:
Você também pode passar os parâmetros do docker-compose
para o docker para iniciar:
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
Substitua 123 no comando acima pela senha que você deseja definir e substitua SNAP_URL_BASE
pelo IP externo do servidor (se desejar ver a captura de tela no seu celular).
Somente os modelos Synology que suportam Docker podem instalar o Check Sauce. Além de instalá-lo diretamente através da linha de comando, você também pode consultar o tutorial de instalação da GUI.
Variáveis Volume
e ambiente podem referir-se às configurações docker/compose acima.
Depois que a imagem da nuvem Check Sauce for atualizada, você poderá atualizar o serviço de nuvem em execução para a versão mais recente. Veja como:
Primeiro pare o contêiner existente:
Execute através do docker-compose:
docker-compose down
Execute docker ps
iniciado diretamente por docker para consultar o ID do contêiner e pare por docker stop 容器id
.
Em seguida, execute docker pull para obter a versão mais recente:
docker pull easychen/checkchan:latest
Após a conclusão, basta iniciar o serviço.
Clique em云端服务
no menu no canto superior direito do plug-in.
Digite http://$BBB:8088
na coluna服务器地址
(substitua $BBB API_KEY
IP B, não há necessidade de adicionar parâmetros-chave ao URL aqui);
Clique em Salvar. Depois que a conexão for bem-sucedida, a configuração será concluída.
Após configurar a nuvem, retorne à página da lista. Haverá um ícone adicional “Computador” na extremidade direita de cada linha. Ao clicar, ele se transformará em um ícone “Nuvem” e a tarefa será executada na nuvem. em vez de.
Clique no botão “Cloud + Arrow” no canto superior direito para sincronizar ativamente as tarefas com a nuvem.
O molho Check também será sincronizado automaticamente a cada dez minutos.
A nuvem auto-instalada do Check Sauce suporta capturas de tela de tarefas do tipo página da web (dom), que podem ser habilitadas passando variáveis de ambiente para a imagem:
Consulte docker-compser.yml
acima. Basta adicionar a variável de ambiente e reiniciar o serviço.
Perceber
A nuvem auto-hospedada do Check Sauce possui uma interface integrada para uplink RSS de páginas dinâmicas:
http://$ip:$port/rss/upload?key=$api_key
http://$ip:$port/image/rss.xml?key=$api_key
O Check Sauce possui uma interface integrada para sincronização de cookies na nuvem:
http://$ip:$port/cookie/sync?key=$api_key
O princípio da tarefa da nuvem Check Sauce é sincronizar os cookies com a nuvem e depois visualizá-los com um navegador. A essência é a mesma da operação do usuário. Porém, como o IP de exportação pode ser salas de informática e data centers, existe a possibilidade de controle de risco caso a frequência seja muito alta. Se a nuvem for implantada em casa, o efeito será o mesmo de acessá-la em um computador doméstico.
De modo geral, o problema de que tarefas locais podem ser executadas, mas não podem ser executadas na nuvem, é devido a diferenças nos ambientes de rede e no software do navegador entre os dois, como:
Como a memória do servidor geralmente não é tão grande quanto a de todos os computadores, muitas tarefas que são OK quando executadas localmente falharão no meio do caminho porque os segundos de “leitura atrasada” são muito pequenos após serem sincronizados com a nuvem. Se você encontrar uma situação semelhante, tente adicionar "leitura atrasada".
Se isso não funcionar, geralmente é porque há diferenças entre a página da web exibida pelo navegador headless na nuvem e a local. Para esta situação, geramos uma captura de tela da tarefa com falha mais recente, que pode ser vista na seção ". Menu "Serviço em Nuvem".
Clique no botão "Captura de tela de falha" para vê-la. Nota: Você precisa usar apenas a imagem mais recente e passar ERROR_IMAGE=NORMAL
. Se você deseja capturar uma imagem de uma página web completa, você pode passar ERROR_IMAGE=FULL
.
Se a tarefa falhar e não houver captura de tela, significa que a tarefa não falhou porque o seletor CSS não foi atingido. Tente adicionar "leitura atrasada" para resolver o problema.
Você também pode ver o log de tarefas na nuvem nesta página. O log aqui não inclui tarefas acionadas clicando manualmente no botão "Monitorar". Se não houver tarefas que possam ser executadas (as tarefas são acionadas regularmente), o log também poderá estar vazio.
Além da nossa própria nuvem, também integramos o modo de área de trabalho remota à imagem. Ele permite que você se conecte ao servidor via VNC e use-o como um navegador local.
A versão de desktop remoto era anteriormente uma imagem independente, mas agora está integrada ao easychen/checkchan, para que você possa usá-la diretamente.
Depois que o serviço for iniciado, ele poderá ser conectado por meio do software cliente VNC.
Na área de trabalho remota, você pode se conectar diretamente à nuvem no mesmo contêiner Preencha http://localhost
como endereço do servidor e insira a CHAVE DE API conforme definido no YML acima.
Você pode adicionar variáveis de ambiente e modificar as restrições de largura e altura da tela para facilitar o uso em telefones celulares:
- WIN_WIDTH=414
- WIN_HEIGHT=896
- XVFB_WHD=500x896x16
Um exemplo adicionado ao 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
O consumo diário de contêineres é de 300 milhões ~ 500 milhões. Um ambiente em execução com maior memória será mais estável. Se encontrar problemas, você pode tentar aumentar a memória.
Você pode usar a nuvem integrada na mesma imagem para depurar visualmente as tarefas da nuvem. Defina VDEBUG
no arquivo YML como ON
e, em seguida, reinicie o contêiner para ver o processo detalhado de monitoramento de páginas da web.
environment :
- " CKC_PASSWD=123 "
- " VDEBUG=ON "