IvanCastl

Python OSINT ONION

Jan 14th, 2025
1,071
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.49 KB | Cybersecurity | 0 0
  1. import time
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.chrome.options import Options
  5. from selenium.webdriver.common.keys import Keys  # Agrega esta línea
  6. from selenium.common.exceptions import NoSuchElementException  # Agregar esta línea para manejar excepciones
  7. import os
  8.  
  9. # Configuración de las opciones de Chrome
  10. chrome_options = Options()
  11. chrome_options.add_argument("--headless")  # Ejecutar Chrome en modo headless
  12. chrome_options.add_argument("--no-sandbox")
  13. chrome_options.add_argument("--disable-dev-shm-usage")
  14. chrome_options.add_argument("--log-level=3")  # Desactivar los logs de la consola del navegador
  15.  
  16. # Iniciar el navegador sin especificar Service
  17. driver = webdriver.Chrome(options=chrome_options)
  18.  
  19. def buscar_en_ahmia(query, max_results):
  20.     # Accede al sitio web
  21.     driver.get("https://ahmia.fi/")
  22.     print("Acceso a Onion completado")
  23.  
  24.     # Encuentra el campo de búsqueda y escribe la consulta
  25.     search_box = driver.find_element(By.ID, "id_q")
  26.     search_box.send_keys(query)
  27.     search_box.send_keys(Keys.RETURN)
  28.     print(f"Consulta enviada: {query}")
  29.  
  30.     # Espera a que se carguen los resultados
  31.     time.sleep(3)
  32.  
  33.     # Extrae los resultados de búsqueda
  34.     resultados = []
  35.     try:
  36.         results_list = driver.find_elements(By.CSS_SELECTOR, ".searchResults .result")
  37.         for idx, result in enumerate(results_list):
  38.             if max_results is not None and idx >= max_results:
  39.                 break
  40.             try:
  41.                 titulo_element = result.find_element(By.CSS_SELECTOR, "h4 a")
  42.                 titulo = titulo_element.text.strip()  # Elimina espacios en blanco
  43.                 # Limpiar el link
  44.                 link = titulo_element.get_attribute("href").strip()
  45.                 if "redirect_url=" in link:
  46.                     link = link.split("redirect_url=")[-1].split("&")[0].strip()
  47.                 descripcion_element = result.find_element(By.CSS_SELECTOR, "p")
  48.                 descripcion = descripcion_element.text.strip()  # Elimina espacios en blanco
  49.                 resultados.append({"Titulo": titulo, "Link": link, "Descripcion": descripcion})
  50.             except NoSuchElementException:
  51.                 resultados.append({
  52.                     "Titulo": "Información no disponible",
  53.                     "Link": "",
  54.                     "Descripcion": "Información no disponible",
  55.                 })
  56.     except NoSuchElementException:
  57.         resultados.append({
  58.             "Titulo": "No se encontraron resultados",
  59.             "Link": "",
  60.             "Descripcion": "",
  61.         })
  62.  
  63.     return resultados
  64.  
  65. def main():
  66.     query = input("Ingresa la palabra clave para buscar en Tor: ")
  67.     max_results = int(input("¿Cuántos resultados quieres obtener (10, 20, 30, o 0 para todos)? "))
  68.  
  69.     if max_results == 0:
  70.         max_results = None
  71.  
  72.     # Realizar la búsqueda y mostrar los resultados
  73.     resultados = buscar_en_ahmia(query, max_results)
  74.  
  75.     # Mostrar los resultados en consola
  76.     if resultados:
  77.         print("\nResultados de la búsqueda:")
  78.         for idx, resultado in enumerate(resultados, 1):
  79.             print(f"\nResultado {idx}:")
  80.             print(f"Título: {resultado['Titulo']}")
  81.             print(f"Link: {resultado['Link']}")
  82.             print(f"Descripción: {resultado['Descripcion']}")
  83.     else:
  84.         print("No se encontraron resultados.")
  85.  
  86. if __name__ == "__main__":
  87.     main()
  88.  
  89. # Cerrar el navegador al final
  90. driver.quit()
  91.  
Add Comment
Please, Sign In to add comment