1
resposta

[Projeto] Busca agêntica e scraping

conceitos:

A busca regular é baseada apenas em palavras-chave e retorna uma lista de links como resultado.
Não há análise aprofundada nem tomada de decisão automática.
O usuário precisa avaliar os resultados manualmente.
Uso ideal: pesquisas simples e diretas.

A busca agência envolve um agente inteligente que: Informações de pesquisa, Analisa os resultados, Selecionada a fonte mais relevante, Pode acessar automaticamente o site, Extrai dados específicos

Ela combina busca + esclarecimento + decisão automática.

Instalação dos Pacotes:
pip install tavily-python duckduckgo-search selenium beautifulsoup4 python-dotenv

Instalação dos Pacotes

Configuração das Variáveis
TAVILY_API_KEY=SUA_CHAVE_AQUI

Carregando nenhum código:

import os
from dotenv import load_dotenv

load_dotenv()
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY")

Busca Regular com DuckDuckGo
from duckduckgo_search import DDGS

def busca_regular_restaurantes(cidade):
links = []
with DDGS() as ddgs:
resultados = ddgs.text(f"melhores restaurantes em {cidade}", max_results=5)
for r in resultados:
links.append(r["href"])
return links

links = busca_regular_restaurantes("São Paulo")
print("Links encontrados:")
for link in links:
print(link)

Retorna apenas URLs

Não há filtragem inteligente

Busca Agência com Tavily

from tavily import TavilyClient

tavily = TavilyClient(api_key=TAVILY_API_KEY)

def busca_agentica_tripadvisor(cidade):
resposta = tavily.search(
query=f"melhores restaurantes em {cidade} TripAdvisor",
search_depth="advanced",
max_results=5
)

for resultado in resposta["results"]:
    if "tripadvisor" in resultado["url"].lower():
        return resultado["url"]

return None

url_tripadvisor = busca_agentica_tripadvisor("São Paulo")
print("URL escolhida:", url_tripadvisor)

6️Web Scraping com Selenium + BeautifulSoup

Necessário ter ChromeDriver compatível instalado.

Inicializando o Selenium

6️ Web Scraping com Selenium + BeautifulSoup

⚠Necessário ter ChromeDriver compatível instalado.

Inicializando o Selenium
from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup import time def extrair_dados_restaurantes ( url ): options = Options ( ) options.add_argument ( " -- headless " ) driver = webdriver.Chrome ( options = options ) driver.get ( url ) time.sleep ( 5 ) soup = BeautifulSoup ( driver.page_source , "html.parser" ) restaurantes = [ ] # OBS: classes devem ser ajustadas conforme estrutura real do site cards = soup.find_all ( "div" , class _ = " restaurant - card" ) for card in cards : nome = card.find ( "span" , class_ = " name" ) avaliacao = card.find ( "span" , class_ = " rating " ) tipo = card . find( "span" , class_ = "categoria" ) preco = card . find( "span" , class_ = "preço" ) restaurantes . append({ "nome" : nome . text . strip() if nome else "N/A" , "avaliacao" : avaliação . text . strip() if avaliação else "N/A" , "tipo" : tipo . text .strip() se tipo senão "N/A" , "preco" :

Executando o Pipeline Completo

cidade = "São Paulo"

Busca regular

print("Busca regular:")
print(busca_regular_restaurantes(cidade))

Busca agêntica

url = busca_agentica_tripadvisor(cidade)
print("URL selecionada:", url)

Scraping

if url:
dados = extrair_dados_restaurantes(url)
print("Dados extraídos:")
for r in dados:
print(r)

1 resposta

Ei! Tudo bem, Moacir?

Parabéns pelo excelente resumo e pela estruturação do código! Notei que você captou perfeitamente a essência da busca agêntica em comparação com a busca regular: enquanto a busca comum apenas lista links.

O projeto está muito bem encaminhado e demonstra um domínio sólido das ferramentas de orquestração!

Continue assim e se houver dúvidas, compartilhe conosco no fórum.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!