Update app.py
Browse files
app.py
CHANGED
|
@@ -1,10 +1,7 @@
|
|
| 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,7 +18,7 @@ def expand_keyword(keyword):
|
|
| 21 |
expanded_keywords.append(letter + " " + keyword)
|
| 22 |
return expanded_keywords
|
| 23 |
|
| 24 |
-
def
|
| 25 |
expanded_keywords = expand_keyword(keyword)
|
| 26 |
all_suggestions = {}
|
| 27 |
|
|
@@ -33,48 +30,25 @@ def main_google(keyword):
|
|
| 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 |
-
|
|
|
|
| 41 |
for suggestion, frequency in sorted_suggestions:
|
| 42 |
-
|
| 43 |
-
|
| 44 |
|
| 45 |
-
return suggestions_str,
|
| 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=
|
| 71 |
-
inputs=
|
| 72 |
-
outputs=[
|
| 73 |
-
|
| 74 |
-
|
| 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()
|
|
|
|
| 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 |
expanded_keywords.append(letter + " " + keyword)
|
| 19 |
return expanded_keywords
|
| 20 |
|
| 21 |
+
def main(keyword):
|
| 22 |
expanded_keywords = expand_keyword(keyword)
|
| 23 |
all_suggestions = {}
|
| 24 |
|
|
|
|
| 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 |
+
# Crear tabla HTML con todas las sugerencias
|
| 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 |
+
html_table += f"<tr><td>{suggestion}</td><td>{frequency}</td></tr>"
|
| 42 |
+
html_table += "</table></details>"
|
| 43 |
|
| 44 |
+
return suggestions_str, html_table
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
iface = gr.Interface(
|
| 47 |
+
fn=main,
|
| 48 |
+
inputs="text",
|
| 49 |
+
outputs=["text", "html"],
|
| 50 |
+
title="Generador de sugerencias de búsqueda de Google",
|
| 51 |
+
description="Ingrese una palabra clave para obtener sugerencias de búsqueda relacionadas de Google. Se mostrarán las 10 sugerencias más frecuentes que aparecen al menos dos veces, seguidas de una tabla detallada con todas las sugerencias y sus frecuencias."
|
|
|
|
|
|
|
|
|
|
| 52 |
)
|
| 53 |
|
| 54 |
+
iface.launch()
|