Update app.py
Browse files
app.py
CHANGED
|
@@ -1,7 +1,10 @@
|
|
| 1 |
import gradio as gr
|
| 2 |
import requests
|
| 3 |
import urllib.parse
|
|
|
|
|
|
|
| 4 |
|
|
|
|
| 5 |
def fetch_suggestions(query, lang_code="es"):
|
| 6 |
encoded_query = urllib.parse.quote(query)
|
| 7 |
url = f"http://suggestqueries.google.com/complete/search?client=firefox&hl={lang_code}&q={encoded_query}"
|
|
@@ -18,7 +21,7 @@ def expand_keyword(keyword):
|
|
| 18 |
expanded_keywords.append(letter + " " + keyword)
|
| 19 |
return expanded_keywords
|
| 20 |
|
| 21 |
-
def
|
| 22 |
expanded_keywords = expand_keyword(keyword)
|
| 23 |
all_suggestions = {}
|
| 24 |
|
|
@@ -30,25 +33,48 @@ def main(keyword):
|
|
| 30 |
else:
|
| 31 |
all_suggestions[suggestion] = 1
|
| 32 |
|
| 33 |
-
# Ordenar las sugerencias por frecuencia y seleccionar las 10 primeras con al menos dos repeticiones
|
| 34 |
sorted_suggestions = sorted(all_suggestions.items(), key=lambda item: item[1], reverse=True)
|
| 35 |
top_10_suggestions = [sug for sug, freq in sorted_suggestions if freq >= 2][:10]
|
| 36 |
suggestions_str = ", ".join(top_10_suggestions)
|
| 37 |
|
| 38 |
-
|
| 39 |
-
html_table = "<details><summary>Ver tabla de sugerencias de Google</summary><table><tr><th>Sugerencias de Google</th><th>Frecuencia</th></tr>"
|
| 40 |
for suggestion, frequency in sorted_suggestions:
|
| 41 |
-
|
| 42 |
-
|
| 43 |
|
| 44 |
-
return suggestions_str,
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
iface = gr.Interface(
|
| 47 |
-
fn=
|
| 48 |
-
inputs="
|
| 49 |
-
outputs=[
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
| 52 |
)
|
| 53 |
|
| 54 |
-
iface.launch()
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
import requests
|
| 3 |
import urllib.parse
|
| 4 |
+
from bs4 import BeautifulSoup
|
| 5 |
+
import pandas as pd
|
| 6 |
|
| 7 |
+
# Funciones para Google
|
| 8 |
def fetch_suggestions(query, lang_code="es"):
|
| 9 |
encoded_query = urllib.parse.quote(query)
|
| 10 |
url = f"http://suggestqueries.google.com/complete/search?client=firefox&hl={lang_code}&q={encoded_query}"
|
|
|
|
| 21 |
expanded_keywords.append(letter + " " + keyword)
|
| 22 |
return expanded_keywords
|
| 23 |
|
| 24 |
+
def main_google(keyword):
|
| 25 |
expanded_keywords = expand_keyword(keyword)
|
| 26 |
all_suggestions = {}
|
| 27 |
|
|
|
|
| 33 |
else:
|
| 34 |
all_suggestions[suggestion] = 1
|
| 35 |
|
|
|
|
| 36 |
sorted_suggestions = sorted(all_suggestions.items(), key=lambda item: item[1], reverse=True)
|
| 37 |
top_10_suggestions = [sug for sug, freq in sorted_suggestions if freq >= 2][:10]
|
| 38 |
suggestions_str = ", ".join(top_10_suggestions)
|
| 39 |
|
| 40 |
+
html_table_google = "<details><summary>Ver sugerencias de Google</summary><table><tr><th>Sugerencias de Google</th><th>Frecuencia</th></tr>"
|
|
|
|
| 41 |
for suggestion, frequency in sorted_suggestions:
|
| 42 |
+
html_table_google += f"<tr><td>{suggestion}</td><td>{frequency}</td></tr>"
|
| 43 |
+
html_table_google += "</table></details>"
|
| 44 |
|
| 45 |
+
return suggestions_str, html_table_google
|
| 46 |
|
| 47 |
+
# Funciones para Bing
|
| 48 |
+
def extraer_sugerencias_bing(query):
|
| 49 |
+
query = query.replace(' ', '+')
|
| 50 |
+
url_busqueda = f"https://www.bing.es/search?q={query}&qs=n&form=QBRE&sp=-1&ghc=1&pq=ponferradin&sc=8-11&sk=&cvid=E9585B5B0F4343AF97297973971AF21E"
|
| 51 |
+
headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"}
|
| 52 |
+
response_busqueda = requests.get(url_busqueda, headers=headers)
|
| 53 |
+
titulos_sugerencias = []
|
| 54 |
+
if response_busqueda.status_code == 200:
|
| 55 |
+
soup_busqueda = BeautifulSoup(response_busqueda.text, 'html.parser')
|
| 56 |
+
suggestion_titles = soup_busqueda.find_all('div', class_='richrsrailsuggestion')
|
| 57 |
+
titulos_sugerencias = [title.text.strip() for title in suggestion_titles]
|
| 58 |
+
return titulos_sugerencias
|
| 59 |
+
|
| 60 |
+
def main_bing(keyword):
|
| 61 |
+
sugerencias_bing = extraer_sugerencias_bing(keyword)
|
| 62 |
+
html_table_bing = "<details><summary>Ver sugerencias de Bing</summary><table><tr><th>Sugerencias de Bing</th></tr>"
|
| 63 |
+
for suggestion in sugerencias_bing:
|
| 64 |
+
html_table_bing += f"<tr><td>{suggestion}</td></tr>"
|
| 65 |
+
html_table_bing += "</table></details>"
|
| 66 |
+
return ", ".join(sugerencias_bing[:10]), html_table_bing
|
| 67 |
+
|
| 68 |
+
# Creación de la interfaz de Gradio
|
| 69 |
iface = gr.Interface(
|
| 70 |
+
fn=[main_google, main_bing],
|
| 71 |
+
inputs=gr.inputs.Textbox(label="Ingrese Palabra Clave"),
|
| 72 |
+
outputs=[
|
| 73 |
+
["text", "html"], # Salidas para Google
|
| 74 |
+
["text", "html"] # Salidas para Bing
|
| 75 |
+
],
|
| 76 |
+
title="Generador de sugerencias de búsqueda de Google y Bing",
|
| 77 |
+
description="Ingrese una palabra clave para obtener sugerencias de búsqueda relacionadas de Google y Bing. Se mostrarán las 10 sugerencias más frecuentes que aparecen al menos dos veces, seguidas de tablas detalladas con todas las sugerencias y sus frecuencias."
|
| 78 |
)
|
| 79 |
|
| 80 |
+
iface.launch()
|