Spaces:
Sleeping
Sleeping
| import requests | |
| import pandas as pd | |
| import gradio as gr | |
| from itertools import product | |
| from time import sleep | |
| # Funci贸n para realizar una b煤squeda en Google Custom Search usando claves proporcionadas por el usuario | |
| def buscar_en_google(query, api_key, cse_id): | |
| url = f"https://www.googleapis.com/customsearch/v1?q={query}&key={api_key}&cx={cse_id}" | |
| response = requests.get(url) | |
| return response.json() if response.status_code == 200 else None | |
| # Funci贸n principal para buscar y filtrar keywords con resultados de redes sociales | |
| def buscar_keywords_redes(api_key, cse_id): | |
| temas = ["decoraci贸n", "moda", "comida", "manualidades", "fotograf铆a"] | |
| modificadores = ["ideas", "consejos", "tutorial", "gu铆a", "fotos"] | |
| keywords_automaticas = [f"{mod} de {tema}" for mod, tema in product(modificadores, temas)] | |
| resultados_sociales = [] | |
| for keyword in keywords_automaticas: | |
| data = buscar_en_google(keyword, api_key, cse_id) | |
| if data: | |
| for item in data.get('items', []): | |
| link = item['link'] | |
| if any(dominio in link for dominio in ["pinterest.com", "facebook.com", "x.com"]): | |
| resultados_sociales.append({ | |
| 'Keyword': keyword, | |
| 'Enlace': link, | |
| 'T铆tulo': item['title'] | |
| }) | |
| break | |
| sleep(1) # Pausa para evitar superar el l铆mite de peticiones de la API | |
| # Convertir a DataFrame y devolver los resultados | |
| df_resultados_sociales = pd.DataFrame(resultados_sociales) | |
| return df_resultados_sociales if not df_resultados_sociales.empty else "No se encontraron keywords con resultados de redes sociales." | |
| # Funci贸n de Gradio para mostrar los resultados | |
| def gradio_interface(api_key, cse_id): | |
| resultados = buscar_keywords_redes(api_key, cse_id) | |
| return resultados if isinstance(resultados, str) else resultados.to_html(index=False) | |
| # Crear la interfaz de Gradio con campos para API Key y CSE ID | |
| iface = gr.Interface( | |
| fn=gradio_interface, | |
| inputs=[ | |
| gr.Textbox(label="Google API Key", placeholder="Ingresa tu API Key de Google"), | |
| gr.Textbox(label="Custom Search Engine ID (CSE ID)", placeholder="Ingresa tu CSE ID de Google") | |
| ], | |
| outputs="html", | |
| title="B煤squeda de Keywords con Resultados de Redes Sociales", | |
| description="Esta herramienta busca keywords para las que Google muestra resultados de redes sociales (Pinterest, Facebook, X) debido a la falta de contenido web especializado." | |
| ) | |
| # Ejecuta la interfaz en Hugging Face Spaces | |
| iface.launch() | |