import asyncio from playwright.async_api import async_playwright from bs4 import BeautifulSoup import gradio as gr async def buscar_google_shopping(produto): async with async_playwright() as p: browser = await p.chromium.launch(headless=True) page = await browser.new_page() await page.goto("https://www.google.com/shopping") await page.fill("input[name='q']", produto) await page.keyboard.press("Enter") await page.wait_for_load_state("networkidle") try: await page.click("text=Ordenar por") await page.click("text=Preço mais baixo") await page.wait_for_load_state("networkidle") except: pass html = await page.content() await browser.close() soup = BeautifulSoup(html, "html.parser") produtos = [] for item in soup.select("div.sh-dgr__content")[:30]: nome_tag = item.select_one("h3") preco_tag = item.select_one(".a8Pemb") link_tag = item.select_one("a") if nome_tag and preco_tag and link_tag: nome = nome_tag.text.strip() preco = preco_tag.text.strip() link = "https://www.google.com" + link_tag["href"] produtos.append({"Nome": nome, "Preço": preco, "Link": link}) return produtos interface = gr.Interface( fn=buscar_google_shopping, inputs=gr.Textbox(label="Produto para buscar no Google Shopping"), outputs=gr.Dataframe(headers=["Nome", "Preço", "Link"]), title="Google Shopping Scraper", description="Busca os 30 produtos mais baratos com nome, preço e link." ) if __name__ == "__main__": interface.launch()