Apr-23-2025, 04:42 PM
não consigo automatizar a busca em um site, podem me ajudar a solucionar o erro?
Esse é o código:

Esse é o código:
import requests import pandas as pd from datetime import datetime, timedelta # Parâmetros de busca palavras_chave = ["cartografia", "topografia", "geodésia"] estado = "BA" data_inicio = (datetime.today() - timedelta(days=7)).strftime('%Y-%m-%d') data_fim = datetime.today().strftime('%Y-%m-%d') URL = "https://pncp.gov.br/api/consulta/v1/contratacoes/consultarPeriodoRecebimentoPropostas" HEADERS = {"Content-Type": "application/json"} def buscar_editais_filtrados(estado, palavras_chave, data_inicio, data_fim): resultados = [] pagina = 1 while True: print(f"🔍 Página {pagina}...") payload = { "uf": estado, "dataInicioRecebimentoProposta": data_inicio, "dataFimRecebimentoProposta": data_fim, "pagina": pagina, "tamanhoPagina": 100 } resposta = requests.post(URL, headers=HEADERS, json=payload) if resposta.status_code != 200: print(f"⚠️ Erro ao buscar dados: {resposta.status_code}") break dados = resposta.json() registros = dados.get("contratacoes", []) for edital in registros: objeto = edital.get("objeto", "").lower() if any(palavra in objeto for palavra in palavras_chave): resultados.append({ "Objeto": edital.get("objeto", ""), "Modalidade": edital.get("modalidade", ""), "Data Fim Proposta": edital.get("dataFimRecebimentoProposta", ""), "Órgão": edital.get("orgao", {}).get("nome", ""), "Município": edital.get("municipio", ""), "UF": edital.get("uf", ""), "Link PNCP": edital.get("urlPNCP", "") }) if dados.get("ultimaPagina", True): break pagina += 1 return resultados # Executa a busca e exibe os resultados filtrados editais_filtrados = buscar_editais_filtrados(estado, palavras_chave, data_inicio, data_fim) df = pd.DataFrame(editais_filtrados) print(f"\n✅ Total de editais encontrados com palavras-chave: {len(df)}") df.head(10)Por favor, me ajudem!
