
OnionSearchは、さまざまな.onion検索エンジンでURLをスクレイピングするスクリプトです。
👋 こんにちは!業務のお問い合わせやコラボレーションについては、以下の連絡先までご連絡ください: [email protected]
📧 できれば、仕事用のメールアドレスをご使用ください。簡潔に、すべて英語でお願いします!
OnionSearchは、さまざまな".onion"検索エンジンからURLをスクレイピングするPython3スクリプトです。


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"
単語「computer」で「Ahmia」と「Candle」を除くすべてのエンジンをリクエストするには:
onionsearch "computer" --exclude ahmia candle
単語「computer」で「Tor66」「DeepLink」「Phobos」のみをリクエストするには:
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(テールフォロー)を使用して、スクレイピングの結果をアクティブに監視できます。