
OnionSearch è uno script che raschia URL su diversi motori di ricerca .onion.
👋 Ciao! Per richieste professionali o collaborazioni, ti prego di contattarmi a: [email protected]
📧 Preferibilmente, utilizza la tua email professionale per la corrispondenza. Cerchiamo di essere brevi e concisi, e tutto in inglese!
OnionSearch è uno script Python3 che estrae URL da diversi motori di ricerca ".onion".


pip3 install onionsearch
git clone https://github.com/megadose/OnionSearch.git
cd OnionSearch/
python3 setup.py install
Aiuto:
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)
[...]
Per impostazione predefinita, lo script viene eseguito con il parametro mp_units = cpu_count() - 1. Ciò significa che se hai una macchina con 4 core,
eseguirà 3 funzioni di scraping in parallelo. Puoi impostare mp_units a qualsiasi valore ma si consiglia di lasciare il valore predefinito.
Potresti impostarlo a 1 per eseguire tutte le richieste in sequenza (disabilitando la funzionalità multi-processo).
Si prega di notare che la scrittura continua su file csv non è stata pesantemente testata con la funzionalità multi-processo e quindi potrebbe non funzionare come previsto.
Si prega anche di notare che le barre di avanzamento potrebbero non essere visualizzate correttamente quando mp_units è maggiore di 1.
Ciò non influenza i risultati, quindi non preoccuparti.
Per richiedere tutti i motori per la parola "computer":
onionsearch "computer"
Per richiedere tutti i motori eccetto "Ahmia" e "Candle" per la parola "computer":
onionsearch "computer" --exclude ahmia candle
Per richiedere solo "Tor66", "DeepLink" e "Phobos" per la parola "computer":
onionsearch "computer" --engines tor66 deeplink phobos
Lo stesso di prima ma limitando a 3 il numero di pagine da caricare per motore:
onionsearch "computer" --engines tor66 deeplink phobos --limit 3
Si prega di notare che l'elenco dei motori supportati (e le loro chiavi) è fornito nell'aiuto dello script (-h).
Per impostazione predefinita, il file viene scritto al termine del processo. Il file sarà in formato CSV, contenente le seguenti colonne:
"engine","name of the link","url"
Puoi personalizzare ciò che verrà scritto nel file di output utilizzando i parametri --fields e --field_delimiter.
--fields ti permette di aggiungere, rimuovere, riordinare i campi di output. La modalità predefinita è mostrata qui sotto. Invece, puoi per esempio
scegliere di ottenere in output:
"engine","name of the link","url","domain"
impostando --fields engine name link domain.
O anche, puoi scegliere di ottenere in output:
"engine","domain"
impostando --fields engine domain.
Questi sono esempi ma ci sono molte possibilità.
Infine, puoi anche scegliere di modificare il delimitatore CSV (virgola per impostazione predefinita), ad esempio: --field_delimiter ";".
Il nome del file sarà impostato di default a output_$DATE_$SEARCH.txt, dove $DATE rappresenta la data/ora corrente e $SEARCH i primi
caratteri della stringa di ricerca.
Puoi modificare questo nome utilizzando --output durante l'esecuzione dello script, per esempio:
onionsearch "computer" --output "\$DATE.csv"
onionsearch "computer" --output output.txt
onionsearch "computer" --output "\$DATE_\$SEARCH.csv"
...
(Nota che potrebbe essere necessario escape del carattere dollaro.)
Nel file CSV prodotto, le stringhe nome e URL sono sanitizzate il più possibile, ma potrebbero esserci ancora alcuni problemi...
Puoi scegliere di scrivere progressivamente nell'output (invece di tutto alla fine, per evitare
di perdere i risultati se qualcosa va storto). Per farlo devi usare --continuous_write True, proprio così:
onionsearch "computer" --continuous_write True
Puoi poi usare il comando Unix tail -f per monitorare attivamente i risultati dello scraping.