Apr-23-2025, 04:42 PM
(This post was last modified: Apr-23-2025, 07:56 PM by deanhystad.)
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!

deanhystad write Apr-23-2025, 07:56 PM:
Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.
Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.