Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.chrome.options import Options
- from selenium.webdriver.common.keys import Keys # Agrega esta línea
- from selenium.common.exceptions import NoSuchElementException # Agregar esta línea para manejar excepciones
- import os
- # Configuración de las opciones de Chrome
- chrome_options = Options()
- chrome_options.add_argument("--headless") # Ejecutar Chrome en modo headless
- chrome_options.add_argument("--no-sandbox")
- chrome_options.add_argument("--disable-dev-shm-usage")
- chrome_options.add_argument("--log-level=3") # Desactivar los logs de la consola del navegador
- # Iniciar el navegador sin especificar Service
- driver = webdriver.Chrome(options=chrome_options)
- def buscar_en_ahmia(query, max_results):
- # Accede al sitio web
- driver.get("https://ahmia.fi/")
- print("Acceso a Onion completado")
- # Encuentra el campo de búsqueda y escribe la consulta
- search_box = driver.find_element(By.ID, "id_q")
- search_box.send_keys(query)
- search_box.send_keys(Keys.RETURN)
- print(f"Consulta enviada: {query}")
- # Espera a que se carguen los resultados
- time.sleep(3)
- # Extrae los resultados de búsqueda
- resultados = []
- try:
- results_list = driver.find_elements(By.CSS_SELECTOR, ".searchResults .result")
- for idx, result in enumerate(results_list):
- if max_results is not None and idx >= max_results:
- break
- try:
- titulo_element = result.find_element(By.CSS_SELECTOR, "h4 a")
- titulo = titulo_element.text.strip() # Elimina espacios en blanco
- # Limpiar el link
- link = titulo_element.get_attribute("href").strip()
- if "redirect_url=" in link:
- link = link.split("redirect_url=")[-1].split("&")[0].strip()
- descripcion_element = result.find_element(By.CSS_SELECTOR, "p")
- descripcion = descripcion_element.text.strip() # Elimina espacios en blanco
- resultados.append({"Titulo": titulo, "Link": link, "Descripcion": descripcion})
- except NoSuchElementException:
- resultados.append({
- "Titulo": "Información no disponible",
- "Link": "",
- "Descripcion": "Información no disponible",
- })
- except NoSuchElementException:
- resultados.append({
- "Titulo": "No se encontraron resultados",
- "Link": "",
- "Descripcion": "",
- })
- return resultados
- def main():
- query = input("Ingresa la palabra clave para buscar en Tor: ")
- max_results = int(input("¿Cuántos resultados quieres obtener (10, 20, 30, o 0 para todos)? "))
- if max_results == 0:
- max_results = None
- # Realizar la búsqueda y mostrar los resultados
- resultados = buscar_en_ahmia(query, max_results)
- # Mostrar los resultados en consola
- if resultados:
- print("\nResultados de la búsqueda:")
- for idx, resultado in enumerate(resultados, 1):
- print(f"\nResultado {idx}:")
- print(f"Título: {resultado['Titulo']}")
- print(f"Link: {resultado['Link']}")
- print(f"Descripción: {resultado['Descripcion']}")
- else:
- print("No se encontraron resultados.")
- if __name__ == "__main__":
- main()
- # Cerrar el navegador al final
- driver.quit()
Add Comment
Please, Sign In to add comment