import requests
from bs4 import BeautifulSoup
import pandas as pd
from datetime import date

def raspar_preco_coamo_amambai():
    url = "https://www.coamo.com.br/preco-do-dia/"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
    }

    try:
        response = requests.get(url, headers=headers, timeout=15)
        response.raise_for_status()
    except requests.RequestException as e:
        print(f"Erro ao acessar o site: {e}")
        return None

    soup = BeautifulSoup(response.content, "html.parser")
    dados = []

    # A Coamo coloca cada unidade em uma tabela ou com um h3/h4 antes
    # Vamos procurar por "Amambai"
    tabelas = soup.find_all("table")

    encontrou_amambai = False
    for tabela in tabelas:
        # Verifica se "Amambai" está no texto acima da tabela
        titulo = tabela.find_previous(["h2", "h3", "h4"])
        if titulo and "AMAMBAI" in titulo.text.upper():
            encontrou_amambai = True
            linhas = tabela.find_all("tr")

            for linha in linhas[1:]: # pula cabeçalho
                colunas = linha.find_all("td")
                if len(colunas) >= 3:
                    produto = colunas[0].text.strip()
                    preco = colunas[1].text.strip()
                    variacao = colunas[2].text.strip()

                    # Filtra só soja e milho
                    if "SOJA" in produto.upper() or "MILHO" in produto.upper():
                        dados.append({
                            "Data": date.today().strftime("%d/%m/%Y"),
                            "Unidade": "Amambai-MS",
                            "Produto": produto,
                            "Preco_R$": preco,
                            "Variacao": variacao,
                            "Fonte": "Coamo"
                        })
            break # já achou Amambai, pode parar

    if not encontrou_amambai:
        print("Unidade Amambai-MS não encontrada na página. Verifique se o site mudou.")
        return None

    df = pd.DataFrame(dados)
    return df

# USAR O SCRIPT
df_precos = raspar_preco_coamo_amambai()

if df_precos is not None and not df_precos.empty:
    print("--- PREÇOS COAMO AMAMBAI-MS HOJE ---")
    print(df_precos.to_string(index=False))

    # Salvar em CSV
    nome_arquivo = f"preco_coamo_amambai_{date.today()}.csv"
    df_precos.to_csv(nome_arquivo, index=False, encoding="utf-8-sig")
    print(f"\nArquivo salvo: {nome_arquivo}")
else:
    print("Não foi possível pegar os dados de Amambai.")
