Nada encontrado, proxies e captchas
Uma busca por um valor que não existe é uma resposta normal, não uma falha; um site que bloqueia servidores precisa de um proxy; um captcha precisa de um resolvedor. Um scraper aprende cada uma dessas coisas durante a construção, registra junto com a versão e diz claramente o que falta — ele nunca falha uma execução sem dizer por quê.
- Diferenciar “Nada encontrado” de uma execução que falhou
- Escolher como um scraper sai: direto, proxies rotativos ou um proxy fixo
- Configurar um resolvedor de captcha para o projeto
- Ler o aviso que um scraper mostra quando falta algo
“Nada encontrado” é uma resposta
Durante a construção, o scraper repete o percurso uma vez com um valor no mesmo formato do seu, mas que com certeza não existe — BR102019000123 vira BR999999999999 —, e guarda a frase que só aquela página mostra, como Nenhum processo encontrado. O programa confere essa frase no passo em que o valor inválido não passou.
NOT_FOUND = "No process found"
# … inside main(), right after the search is submitted:
if waiso.page_has_text(page, NOT_FOUND):
return waiso.not_found()Uma execução assim termina com sucesso, sem linhas e com notFound: true. A página de execuções mostra uma etiqueta neutra Nada encontrado, um passo de flow recebe notFound na saída, e nada vai para correção — o site respondeu, só não tinha nada para entregar.
Proxies
Um scraper novo começa sem proxy: um proxy que ninguém escolheu gasta o pool do navegador e pode mudar o que o site devolve. Abra Rede e Proxies do scraper para escolher como as execuções saem.
| Modo | O que as execuções fazem |
|---|---|
| Desligado | Saem direto, do nosso próprio endereço. Rápido, mas um site que nos bloqueia continua bloqueando. |
| Rotativo | Alternam entre as proxies do grupo escolhido; se um site recusa uma, a execução tenta a próxima. |
| Fixo | Sempre saem pela única proxy que você fixar. Simples, mas sem alternativa. |
Se a própria construção é bloqueada, ela tenta de novo pelo pool de proxies do projeto e registra que este robô precisa de um proxy. Sem proxy no projeto, o Studio mostra Este robô precisa de um proxy com um link Adicionar um proxy, e as execuções falham com proxy_none até existir um.
Captchas
Um captcha de checkbox é resolvido com um clique. Qualquer coisa mais difícil é enviada para o seu endpoint resolvedor, que responde com um token. Configure uma vez para o projeto — URL do endpoint solucionador, um cabeçalho de autenticação opcional e o segredo dele, depois Testar endpoint — e um scraper pode sobrescrever quando o projeto permitir.
- Um captcha encontrado durante a construção é registrado e o programa declara isso com
waiso.needs(captcha=…). - O motor responde ao pedido de token do programa; o segredo do resolvedor nunca chega ao programa.
- Cada execução diz como foi: Resolvido pelo checkbox, Resolvido pelo endpoint solucionador ou Não resolvido.
Limites
- O Waiso não vende proxies nem resolve captchas por conta própria: você traz as proxies e o resolvedor.
- Uma versão nova mantém as necessidades do rascunho; restaurar uma versão traz de volta as necessidades dela.