SocialSERP / app.py
tomaseo2022's picture
Create app.py
d63e084 verified
raw
history blame
2.64 kB
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()