
OnionSearch est un script qui extrait les URLs sur différents moteurs de recherche .onion.
👋 Salut ! Pour toute demande professionnelle ou collaboration, veuillez me contacter à l'adresse : [email protected]
📧 De préférence, utilisez votre email professionnel pour la correspondance. Gardons cela court et agréable, et tout en anglais !
OnionSearch est un script Python3 qui extrait des URL sur différents moteurs de recherche « .onion ».


pip3 install onionsearch
git clone https://github.com/megadose/OnionSearch.git
cd OnionSearch/
python3 setup.py install
Aide :
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)
[...]
Par défaut, le script s'exécute avec le paramètre mp_units = cpu_count() - 1. Cela signifie que si vous avez une machine avec 4 cœurs, il exécutera 3 fonctions de scraping en parallèle. Vous pouvez forcer mp_units à n'importe quelle valeur mais il est recommandé de laisser la valeur par défaut. Vous pouvez le définir à 1 pour exécuter toutes les requêtes séquentiellement (désactivation de la fonction multitraitement).
Veuillez noter que l'écriture continue dans un fichier csv n'a pas été lourdement testée avec la fonction multitraitement et peut donc ne pas fonctionner comme prévu.
Veuillez également noter que les barres de progression peuvent ne pas s'afficher correctement lorsque mp_units est supérieur à 1. Cela n'affecte pas les résultats, donc ne vous inquiétez pas.
Pour interroger tous les moteurs pour le mot « computer » :
onionsearch "computer"
Pour interroger tous les moteurs sauf « Ahmia » et « Candle » pour le mot « computer » :
onionsearch "computer" --exclude ahmia candle
Pour interroger uniquement « Tor66 », « DeepLink » et « Phobos » pour le mot « computer » :
onionsearch "computer" --engines tor66 deeplink phobos
Identique au précédent mais en limitant à 3 le nombre de pages à charger par moteur :
onionsearch "computer" --engines tor66 deeplink phobos --limit 3
Veuillez noter que la liste des moteurs pris en charge (et leurs clés) est donnée dans l'aide du script (-h).
Par défaut, le fichier est écrit à la fin du processus. Le fichier sera au format CSV, contenant les colonnes suivantes :
"engine","name of the link","url"
Vous pouvez personnaliser ce qui sera écrit dans le fichier de sortie en utilisant les paramètres --fields et --field_delimiter.
--fields vous permet d'ajouter, supprimer, réordonner les champs de sortie. Le mode par défaut est présenté ci-dessous. Vous pouvez par exemple choisir de sortir :
"engine","name of the link","url","domain"
en définissant --fields engine name link domain.
Ou même, vous pouvez choisir de sortir :
"engine","domain"
en définissant --fields engine domain.
Ce sont des exemples mais il y a de nombreuses possibilités.
Enfin, vous pouvez également modifier le délimiteur CSV (virgule par défaut), par exemple : --field_delimiter ";".
Le nom de fichier sera défini par défaut à output_$DATE_$SEARCH.txt, où $DATE représente la date/heure actuelle et $SEARCH les premiers caractères de la chaîne de recherche.
Vous pouvez modifier ce nom de fichier en utilisant --output lors de l'exécution du script, par exemple :
onionsearch "computer" --output "\$DATE.csv"
onionsearch "computer" --output output.txt
onionsearch "computer" --output "\$DATE_\$SEARCH.csv"
...
(Notez qu'il peut être nécessaire d'échapper le caractère dollar.)
Dans le fichier CSV produit, les chaînes de nom et d'URL sont nettoyées autant que possible, mais il peut encore y avoir quelques problèmes...
Vous pouvez choisir d'écrire progressivement dans la sortie (au lieu de tout à la fin, ce qui éviterait de perdre les résultats en cas de problème). Pour ce faire, vous devez utiliser --continuous_write True, comme ceci :
onionsearch "computer" --continuous_write True
Vous pouvez ensuite utiliser la commande Unix tail -f (tail follow) pour surveiller activement les résultats du scraping.