1
resposta

[Projeto] Faça como eu fiz: Busca agêntica e scraping

Durante a execução da atividade, implementei o fluxo proposto utilizando busca regular com DuckDuckGo, busca agêntica com Tavily e tentativa de extração de dados com Selenium e BeautifulSoup. A busca regular retornou os links esperados e a busca agêntica conseguiu identificar uma URL relevante do TripAdvisor para restaurantes em Campo Grande/MS. No entanto, durante a etapa de scraping com Selenium, o ambiente do Google Colab apresentou falha na inicialização do ChromeDriver. Também foi realizada uma tentativa de instalar o Chromium, mas o pacote não estava disponível nos repositórios configurados do runtime, retornando erro de instalação.

Para manter o objetivo técnico da atividade, adaptei a solução utilizando uma abordagem alternativa com requests e BeautifulSoup, mantendo o tratamento de exceções e um fallback com os resultados obtidos via DuckDuckGo caso o site bloqueasse ou não retornasse HTML estruturado suficiente. Dessa forma, a atividade preservou os conceitos principais: diferença entre busca regular e busca agêntica, uso da Tavily para identificação de uma fonte relevante, tentativa de scraping, tratamento de falhas e organização dos dados em formato tabular/CSV.

Aqui está o link do github com todo o histórico, tanto os erros quanto o código em funcionamento: https://github.com/Moquiuti/LangGraph_Orquestrando_agentes_e_multiagentes/blob/main/Busca_ag%C3%AAntica_e_scraping.ipynb

1 resposta

Olá, Leandro. Como vai?

Parabéns pela excelente capacidade de resolução de problemas! Essa postura de buscar alternativas viáveis quando uma ferramenta falha é o que define um profissional experiente em IA e Dados.

O ambiente do Google Colab, por ser um container Linux efêmero, frequentemente apresenta desafios com o Selenium devido às dependências do WebDriver e do navegador Chromium. Sua decisão de migrar para a biblioteca requests combinada com o BeautifulSoup foi muito acertada, pois simplifica a infraestrutura necessária sem sacrificar o aprendizado sobre extração de dados.

Para agregar valor ao seu projeto e aos seus estudos sobre busca agêntica com LangGraph, gostaria de destacar alguns pontos técnicos sobre a sua implementação:

1. Busca Regular vs. Busca Agêntica
A sua observação sobre a Tavily é fundamental. Enquanto o DuckDuckGo (busca regular) retorna uma lista bruta de links, a Tavily é desenhada especificamente para agentes de IA. Ela já realiza uma pré-filtragem, priorizando conteúdos que tenham alta densidade de informação textual útil para modelos de linguagem (LLMs), como o link do TripAdvisor que você encontrou.

2. A Vantagem do Fallback
A implementação de um mecanismo de fallback (contingência) é uma boa prática essencial em fluxos agênticos. Na orquestração com LangGraph, podemos inclusive configurar um nó de "decisor" que, ao detectar erro no scraping (como o 403 Forbidden ou erro de WebDriver), redireciona o fluxo automaticamente para outra fonte ou método.

3. Por que o Selenium falhou?
Apenas como curiosidade técnica para seus próximos passos, o erro de instalação do Chromium no Colab geralmente ocorre porque as versões mais recentes do Ubuntu (base do Colab) utilizam o gerenciador de pacotes snap, que não funciona bem dentro de containers. Uma alternativa comum é instalar o chromium-browser via repositórios específicos ou usar o modo headless (sem interface gráfica) de forma muito rigorosa.

Sugestão de Prática Adicional:
No seu código com requests, você pode adicionar um cabeçalho de User-Agent. Isso simula um navegador real e ajuda a evitar bloqueios simples de sites que tentam impedir o scraping básico:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)

O histórico no seu GitHub ficou muito rico, inclusive mostrando os erros, o que é ótimo para quem está aprendendo e quer entender o porquê das escolhas técnicas.

Espero que possa ter lhe ajudado!