
OnionSearch — это скрипт, который собирает URL-адреса в различных поисковых системах .onion.
👋 Привет! По любым профессиональным вопросам или сотрудничеству обращайтесь ко мне по адресу: [email protected]
📧 Желательно используйте свою рабочую электронную почту для переписки. Давайте будем краткими и приятными, и всё на английском!
OnionSearch — это скрипт на Python3, который собирает URL-адреса с различных поисковых систем ".onion".


pip3 install onionsearch
git clone https://github.com/megadose/OnionSearch.git
cd OnionSearch/
python3 setup.py install
Справка:
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)
[...]
По умолчанию скрипт запускается с параметром mp_units = cpu_count() - 1. Это означает, что если у вас машина с 4 ядрами, то будут параллельно выполняться 3 функции сбора данных. Вы можете принудительно задать mp_units любое значение, но рекомендуется оставить значение по умолчанию. Возможно, вы захотите установить значение 1 для последовательного выполнения всех запросов (отключив функцию многопроцессорной обработки).
Обратите внимание, что непрерывная запись в CSV-файл не была тщательно протестирована с функцией многопроцессорной обработки и поэтому может работать не так, как ожидается.
Также обратите внимание, что индикаторы выполнения могут некорректно отображаться, когда mp_units больше 1. Это не влияет на результаты, так что не беспокойтесь.
Чтобы запросить все движки по слову "computer":
onionsearch "computer"
Чтобы запросить все движки, кроме "Ahmia" и "Candle", по слову "computer":
onionsearch "computer" --exclude ahmia candle
Чтобы запросить только "Tor66", "DeepLink" и "Phobos" по слову "computer":
onionsearch "computer" --engines tor66 deeplink phobos
То же самое, что и ранее, но с ограничением до 3 страниц на движок:
onionsearch "computer" --engines tor66 deeplink phobos --limit 3
Пожалуйста, обратите внимание, что список поддерживаемых движков (и их ключи) приведён в справке скрипта (-h).
По умолчанию файл записывается в конце процесса. Файл будет в формате CSV, содержащий следующие столбцы:
"engine","name of the link","url"
Вы можете настроить, что будет записываться в выходной файл, используя параметры --fields и --field_delimiter.
--fields позволяет добавлять, удалять, изменять порядок полей вывода. Режим по умолчанию показан чуть ниже. Вместо этого вы можете, например, выбрать вывод:
"engine","name of the link","url","domain"
установив --fields engine name link domain.
Или даже вы можете выбрать вывод:
"engine","domain"
установив --fields engine domain.
Это примеры, но возможностей много.
Наконец, вы также можете изменить разделитель CSV (по умолчанию запятая), например: --field_delimiter ";".
Имя файла по умолчанию будет установлено как output_$DATE_$SEARCH.txt, где $DATE — текущие дата и время, а $SEARCH — первые символы поискового запроса.
Вы можете изменить это имя файла, используя --output при запуске скрипта, например:
onionsearch "computer" --output "\$DATE.csv"
onionsearch "computer" --output output.txt
onionsearch "computer" --output "\$DATE_\$SEARCH.csv"
...
(Обратите внимание, что может потребоваться экранировать знак доллара.)
В создаваемом CSV-файле строки имени и URL очищаются насколько это возможно, но всё ещё могут быть проблемы...
Вы можете выбрать постепенную запись в выходной файл (вместо записи всего в конце, что позволит избежать потери результатов в случае сбоя). Для этого нужно использовать --continuous_write True, как показано:
onionsearch "computer" --continuous_write True
Затем вы можете использовать Unix-команду tail -f (следовать за хвостом) для активного наблюдения или мониторинга результатов сбора.