Log in to leave a comment
No posts yet
Se você simplesmente extrai o HTML de uma página da web como texto puro, o agente de IA se perde. O texto é visível, mas a hierarquia do documento desaparece. De acordo com dados de pesquisas publicados em 2024, preservar a estrutura hierárquica de um documento aumenta a precisão da busca em mais de 30% em comparação com o simples corte de texto. Estou convencido de que a chave é permitir que o agente identifique imediatamente a importância dos dados ao observar as informações do cabeçalho.
A primeira coisa a fazer é abandonar o get_text() do BeautifulSoup. Em vez disso, use a biblioteca Markdownify para mapear as tags HTML para cabeçalhos Markdown. Você deve usar uma estratégia de fragmentação (chunking) pai-filho, dividindo o Markdown convertido por unidades de cabeçalho para fornecer seções superiores inteiras como contexto. Ao utilizar a biblioteca Trafilatura em conjunto, é possível extrair o corpo do texto e, ao mesmo tempo, reduzir o consumo de tokens em até 67%. É a maneira mais segura de economizar custos e aumentar a precisão.
Os rastreadores estáticos nunca conseguem ler dados ocultos atrás de menus de abas ou acordeões implementados com JavaScript. Acredito que esses dados invisíveis são os principais culpados pela degradação da qualidade das respostas em sistemas RAG. O Playwright conecta-se diretamente ao CDP, o protocolo nativo do navegador, sendo mais rápido e poderoso que o Selenium no controle de conteúdo dinâmico. Em casos de aplicação real, sistemas que implementaram sequências de cliques automáticos obtiveram 30% mais dados do que a coleta manual.
Ao construir uma lógica de automação baseada em Playwright, utilize a função page.wait_for_selector em um loop. Você deve esperar com certeza até que o elemento clicável apareça na tela. Em seguida, chame o método scroll_into_view_if_needed() para forçar a rolagem infinita ou requisições AJAX. Clique em cada aba sequencialmente e capture o estado do DOM alterado em tempo real para salvá-lo. Somente através deste processo é possível completar um banco de dados sem perda de informações.
Anúncios, rodapés e barras de menu desperdiçam a janela de contexto do agente e poluem os vetores de embedding. O ruído nos sites é mais sério do que se imagina; dados não refinados são como veneno para a IA. O Readability.js analisa a densidade de texto e links para selecionar apenas o corpo do texto que contém informações reais. Em resultados de benchmark, o Readability registrou uma mediana de desempenho de 0,970 em todos os tipos de páginas, removendo com precisão elementos fora do corpo principal.
Insira este algoritmo em seu pipeline de refinamento de dados. Passe o HTML coletado pelo Readability.js para filtrar apenas o título e o corpo e, em seguida, remova espaços desnecessários com expressões regulares. Ao converter e salvar esse texto refinado em Markdown, a quantidade de dados que o agente precisa ler é reduzida em até 90%. A relevância da busca melhora em 2,29 vezes. É muito mais eficiente inserir dados limpos do que forçar a entrada de grandes volumes de dados.
A maioria dos sites verifica a flag navigator.webdriver para bloquear o acesso de agentes de IA. Se você não quer se deparar com telas de CAPTCHA, uma estratégia de furtividade (stealth) é essencial. Movimentos mecânicos são detectados rapidamente. Vejo a simulação matemática do comportamento humano como a solução mais inteligente.
Primeiro, use o plugin playwright-stealth para remover a flag do webdriver e camuflar o user-agent como a versão mais recente do Chrome. Ao mover o mouse, use curvas de Bézier em vez de linhas retas.
Ao digitar, insira atrasos aleatórios entre 50ms e 200ms para cada caractere. Simplesmente fazer pausas aleatórias de 2 a 5 segundos ao mudar de página pode evitar os olhos dos sistemas anti-bot. Pode parecer um pouco mais lento, mas é muito mais rápido do que ser bloqueado e não conseguir coletar dado nenhum.