import gradio as gr import requests from bs4 import BeautifulSoup import random import time import re def obtener_user_agent(): user_agents = [ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.3", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36", # Más user-agents según sea necesario ] return random.choice(user_agents) def dividir_en_grupos(urls, tamano_grupo=10): for i in range(0, len(urls), tamano_grupo): yield urls[i:i+tamano_grupo] def comprobar_indexacion(input_text): urls = input_text.splitlines() # Asume que las URLs se ingresan una por línea if not urls: return "No se proporcionaron URLs válidas." indexadas = [] no_indexadas = [] try: for grupo_urls in dividir_en_grupos(urls): if len(grupo_urls) == 1: query = f"site:{re.sub(r'https?://', '', grupo_urls[0])}" else: query = " OR ".join([f"site:{re.sub(r'https?://', '', url)}" for url in grupo_urls]) headers = {"User-Agent": obtener_user_agent()} response = requests.get(f"https://www.google.com/search?q={query}", headers=headers, timeout=10) soup = BeautifulSoup(response.text, 'html.parser') search_results = soup.find_all('div', class_='tF2Cxc') for url in grupo_urls: exact_url = re.sub(r'https?://', '', url) # Quitamos http o https found = any(result.find('a', href=True)['href'].split('?')[0].split('#')[0] == exact_url for result in search_results) if found: indexadas.append(url) else: no_indexadas.append(url) time.sleep(random.uniform(1, 2)) # Un retraso más corto para el ejemplo except Exception as e: return f"Error al realizar la búsqueda en Google: {str(e)}" total_indexadas = len(indexadas) total_no_indexadas = len(no_indexadas) total_urls = total_indexadas + total_no_indexadas if total_urls == 1: if total_indexadas == 1: resultado = "Url indexada en Google 🙂" else: resultado = "La url no está indexada en Google 😔" elif total_indexadas == 0: resultado = "Ninguna url indexada en Google😔" elif total_no_indexadas == 0: resultado = "Todas las urls indexadas en Google🙂" else: resultado = f"URLs Indexadas: {total_indexadas}\n" + "\n".join(indexadas) + f"\n\nURLs No Indexadas: {total_no_indexadas}\n" + "\n".join(no_indexadas) return resultado iface = gr.Interface( fn=comprobar_indexacion, inputs="text", outputs="text", title="

Bulk Index Google
Introduce las URLs que quieres comprobar si están indexadas por Google, separadas por saltos de línea. El sistema realizará una búsqueda para verificar si están indexadas.
", article="Desarrollada por © Artxe Web