Spaces:
Runtime error
Runtime error
File size: 2,685 Bytes
fed6bb4 bc59169 fed6bb4 bc59169 d49eff8 bc59169 fed6bb4 bc59169 fed6bb4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
import pandas as pd
import requests
import re
import pdfplumber
from io import BytesIO
# Lee el archivo CSV
df = pd.read_csv('proyectos.csv')
# Lista para almacenar los resultados
resultados = []
# Funci贸n para extraer texto de un PDF
def extraer_texto_pdf(url):
try:
response = requests.get(url)
pdf_file = BytesIO(response.content)
with pdfplumber.open(pdf_file) as pdf:
texto = ''
for pagina in pdf.pages:
texto += pagina.extract_text()
return texto
except Exception as e:
print(f"Error al extraer texto del PDF: {e}")
return None
output = open("proyectos_empresas_full.csv","a")
# Itera sobre las filas del DataFrame
for index, row in df.iterrows():
nombre_proyecto = row[0]
promotor = row[2]
url_boe = row[-1] # 脷ltima columna para la URL del BOE
try:
print(f"Procesando: {url_boe}")
# Verifica si la URL es de un PDF
if url_boe.endswith('.pdf'):
content = extraer_texto_pdf(url_boe)
else:
response = requests.get(url_boe)
content = response.text
# Si no se pudo extraer contenido, contin煤a con la siguiente iteraci贸n
if not content:
resultados.append([nombre_proyecto, url_boe, "Error al acceder o extraer contenido"])
continue
# Expresi贸n regular para encontrar el nombre de la empresa entre "p煤blico" y "MW"
#match = re.search(r'otorga a\s*(.*?)\s*SL\.', content, re.IGNORECASE | re.DOTALL)
match = re.search(r'otorga a\s*(.*?)\s*SL|SA', content, re.IGNORECASE | re.DOTALL)
if match:
nombre_empresa = match.group(1).strip()
else:
nombre_empresa = "No encontrado"
if(len(nombre_empresa)<100):
print("Proyecto: "+nombre_proyecto+", Promotor: "+promotor+", Fiscal: "+nombre_empresa)
#print(row)
output.write(str(row[0])+","+str(row[1])+","+str(row[2])+","+str(row[3])+","+str(row[4])+","+str(row[5])+","+str(row[6])+","+str(row[7])+","+str(row[8])+","+str(row[9])+","+str(row[10])+","+str(row[11])+","+str(row[12])+","+str(row[14])+","+nombre_empresa+"\n")
print(row)
# A帽ade el resultado a la lista
resultados.append([nombre_proyecto, url_boe, nombre_empresa])
except Exception as e:
print(f"Error procesando la URL: {url_boe} - {e}")
#resultados.append([nombre_proyecto, url_boe, "Error al acceder a la URL"])
# Imprime los resultados
for resultado in resultados:
print(resultado)
|