
OnionSearch es un script que extrae URLs de diferentes motores de búsqueda .onion.
👋 ¡Hola! Para cualquier consulta profesional o colaboración, por favor contáctame en: [email protected]
📧 Preferiblemente, usa tu correo profesional para la correspondencia. ¡Mantengámoslo breve y en inglés!
OnionSearch es un script de Python3 que extrae URLs de diferentes motores de búsqueda ".onion".


pip3 install onionsearch
git clone https://github.com/megadose/OnionSearch.git
cd OnionSearch/
python3 setup.py install
Ayuda:
usage: onionsearch [-h] [--proxy PROXY] [--output OUTPUT]
[--continuous_write CONTINUOUS_WRITE] [--limit LIMIT]
[--engines [ENGINES [ENGINES ...]]]
[--exclude [EXCLUDE [EXCLUDE ...]]]
[--fields [FIELDS [FIELDS ...]]]
[--field_delimiter FIELD_DELIMITER] [--mp_units MP_UNITS]
search
positional arguments:
search The search string or phrase
optional arguments:
-h, --help show this help message and exit
--proxy PROXY Set Tor proxy (default: 127.0.0.1:9050)
--output OUTPUT Output File (default: output_$SEARCH_$DATE.txt), where $SEARCH is replaced by the first chars of the search string and $DATE is replaced by the datetime
--continuous_write CONTINUOUS_WRITE
Write progressively to output file (default: False)
--limit LIMIT Set a max number of pages per engine to load
--engines [ENGINES [ENGINES ...]]
Engines to request (default: full list)
--exclude [EXCLUDE [EXCLUDE ...]]
Engines to exclude (default: none)
--fields [FIELDS [FIELDS ...]]
Fields to output to csv file (default: engine name link), available fields are shown below
--field_delimiter FIELD_DELIMITER
Delimiter for the CSV fields
--mp_units MP_UNITS Number of processing units (default: core number minus 1)
[...]
Por defecto, el script se ejecutará con el parámetro mp_units = cpu_count() - 1. Esto significa que si tienes una máquina con 4 núcleos,
ejecutará 3 funciones de scraping en paralelo. Puedes forzar mp_units a cualquier valor, pero se recomienda dejarlo por defecto.
Puede que quieras establecerlo en 1 para ejecutar todas las solicitudes secuencialmente (deshabilitando la función de multiprocesamiento).
Ten en cuenta que la escritura continua en archivo csv no ha sido intensamente probada con la función de multiprocesamiento y, por lo tanto, puede no funcionar como se espera.
Ten en cuenta también que las barras de progreso pueden no mostrarse correctamente cuando mp_units es mayor que 1.
Esto no afecta los resultados, así que no te preocupes.
Para consultar todos los motores para la palabra "computer":
onionsearch "computer"
Para consultar todos los motores exceptuando "Ahmia" y "Candle" para la palabra "computer":
onionsearch "computer" --exclude ahmia candle
Para consultar solo "Tor66", "DeepLink" y "Phobos" para la palabra "computer":
onionsearch "computer" --engines tor66 deeplink phobos
Lo mismo que antes pero limitando a 3 el número de páginas a cargar por motor:
onionsearch "computer" --engines tor66 deeplink phobos --limit 3
Ten en cuenta que la lista de motores soportados (y sus claves) se proporciona en la ayuda del script (-h).
Por defecto, el archivo se escribe al final del proceso. El archivo tendrá formato csv y contendrá las siguientes columnas:
"engine","name of the link","url"
Puedes personalizar lo que se volcará en el archivo de salida usando los parámetros --fields y --field_delimiter.
--fields te permite agregar, eliminar o reordenar los campos de salida. El modo predeterminado se muestra justo debajo. En su lugar, puedes, por ejemplo,
elegir generar:
"engine","name of the link","url","domain"
estableciendo --fields engine name link domain.
O incluso, puedes elegir generar:
"engine","domain"
estableciendo --fields engine domain.
Estos son ejemplos, pero hay muchas posibilidades.
Finalmente, también puedes modificar el delimitador CSV (coma por defecto), por ejemplo: --field_delimiter ";".
El nombre del archivo se establecerá por defecto en output_$DATE_$SEARCH.txt, donde $DATE representa la fecha y hora actual y $SEARCH los primeros
caracteres de la cadena de búsqueda.
Puedes modificar este nombre usando --output al ejecutar el script, por ejemplo:
onionsearch "computer" --output "\$DATE.csv"
onionsearch "computer" --output output.txt
onionsearch "computer" --output "\$DATE_\$SEARCH.csv"
...
(Nota: puede ser necesario escapar el carácter dólar.)
En el archivo csv producido, las cadenas de nombre y URL se sanean tanto como sea posible, pero aún puede haber algunos problemas...
Puedes elegir escribir progresivamente en la salida (en lugar de todo al final, lo que evitaría perder los resultados si algo sale mal). Para hacerlo, debes usar --continuous_write True, tal como está:
onionsearch "computer" --continuous_write True
Luego puedes usar el comando Unix tail -f para ver o monitorear activamente los resultados del scraping.