
使いやすさとTorの堅牢なプライバシー機能を組み合わせ、安全で追跡不可能なデータ収集を可能にします。初心者から経験豊富なプログラマーまで幅広く活用でき、デジタル時代における責任あるデータ収集に欠かせないツールです。
[![Release][release-version-shield]][releases-link] [![Last Commit][last-commit-shield]][commit-link] ![Python][python-version-shield] [![Quality Gate Status][quality-gate-shield]][quality-gate-link] [![license][license-shield]][license-link]
ターミナルを愛用する方なら、物事はシンプルで明確であるべきだとご存じでしょう。出力を他のツールに渡すことは必要不可欠であり、正確さが鍵となります。
単一の引数で、.onionのウェブページも通常のウェブページもTORネットワーク経由で読み取ることができ、パイプを使えばお好みの他のツールに出力を渡すことができます。
$ torcrawl -u http://www.github.com/ | grep 'google-analytics'
<meta-name="google-analytics" content="UA-XXXXXX- ">
ウェブページのリンクをクロールしたい場合は -c を使えば、BAM で内部リンクがすべてファイルに保存されます。さらに -d を使ってそれらをクロールすることもできます。また、引数 -p を使うと、次のクロールまで数秒待機できます。
$ torcrawl -v -u http://www.github.com/ -c -d 2 -p 2
# TOR is ready!
# URL: http://www.github.com/
# Your IP: XXX.XXX.XXX.XXX
# Crawler started from http://www.github.com/ with 2 depth crawl and 2 second(s) delay:
# Step 1 completed with: 11 results
# Step 2 completed with: 112 results
# File created on /path/to/project/links.txt
[!TIP]
クロール自体は違法ではありませんが、著作権を侵害することは違法です。クロールを開始する前に、必ずウェブサイトの利用規約を再確認することをお勧めします。一部のウェブサイトでは、クローラーに対して該当ページへのアクセスを禁止するためにrobots.txtと呼ばれるものを設定しています。
このクローラーはこの制限を回避できるようにしますが、常に robots.txt を尊重することを推奨します。
pip install torcrawlgit clone https://github.com/MikeMeliz/TorCrawl.py.gitpip install -r requirements.txtapt-get install torservice tor starttor.exe][tor-download] をダウンロードし、以下を実行:tor.exe --service installtor.exe --service startbrew install torbrew services start tor| 引数 | 長い形式 | 説明 |
|---|---|---|
| 一般: | ||
| -h | --help | ヘルプメッセージ |
| -v | --verbose | 進行状況に関する詳細情報を表示する |
| -u | --url *.onion | クロールまたは抽出するWebページのURL |
| -w | --without | TORネットワークを使用しない |
| -rua | --random-ua | リクエストに対してランダムなユーザーエージェントのローテーションを有効にする |
| -rpr | --random-proxy | res/proxies.txtからのランダムなプロキシローテーションを有効にする(-wフラグが必要、1行に1プロキシ、形式: host:port) |
| -px | --proxy | SOCKS5プロキシのIPアドレス(デフォルト: TOR使用時は127.0.0.1) |
| -pr | --proxyport | SOCKS5プロキシのポート(デフォルト: 9050) |
| -f | --folder | 生成されたファイルを格納するディレクトリ |
| -V | --version | バージョンを表示して終了 |
| 抽出: | ||
| -e | --extract | ページのコードをターミナルまたはファイルに抽出する(デフォルト: ターミナル) |
| -i | --input filename | URLを含む入力ファイル(行区切り) |
| -o | --output [filename] | ページをファイルに出力する(1ページ用) |
| -y | --yara | yaraキーワード検索を実行する: h = HTMLオブジェクト全体を検索, t = テキストのみを検索 |
| クロール: | ||
| -c | --crawl | ウェブサイトをクロールする(デフォルト出力先: website/links.txt) |
| -d | --depth | クローラーの移動深度を設定する(デフォルト: 1) |
| -p | --pause | リクエスト間の一時停止秒数(デフォルト: 0) |
| -j | --json | クロール結果をtxt出力に加えてJSONでもエクスポートする |
| -x | --xml | クロール結果をtxt出力に加えてXMLでもエクスポートする |
| -DB | --database | クロール結果とリンクグラフをSQLiteデータベースにエクスポートする |
| -vis | --visualization | SQLiteデータベースからHTML可視化を生成する(-DBが必要) |
| -l | --log | 訪問したURLとそのレスポンスコードを記録するログファイル |
単一のWebページをターミナルに抽出するだけの場合:
$ python torcrawl.py -u http://www.github.com
<!DOCTYPE html>
...
</html>
ファイル(github.htm)に、TORを使用せずに抽出します:
$ python torcrawl.py -w -u http://www.github.com -o github.htm
## File created on /script/path/github.htm
ターミナルに抽出し、google-analytics を含む行だけを検索します:
$ python torcrawl.py -u http://www.github.com | grep 'google-analytics'
<meta name="google-analytics" content="UA-*******-*">
ファイルに抽出し、yaraを使ってgoogle-analyticsを含む行だけを検索します:
$ python torcrawl.py -v -w -u https://github.com -e -y 0
...
注: 他のキーワードを検索するには res/keyword.yar を更新してください。
生の HTML を検索するには -y 0 を、テキスト検索のみを行うには -y 1 を使用してください。
一連のウェブページ(ファイルからインポート)をターミナルに抽出します:
$ python torcrawl.py -i links.txt
...
TORを使用せずにWebページのリンクをクロールし、詳細な出力も表示します(非常に便利です):
$ python torcrawl.py -v -w -u http://www.github.com/ -c
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com/ with step 1 and wait 0
## Step 1 completed with: 11 results
## File created on /script/path/links.txt
ウェブページを深さ2(2クリック)でクロールし、次のページをクロールする前に5秒待機します:
$ python torcrawl.py -v -u http://www.github.com/ -c -d 2 -p 5
## TOR is ready!
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com with step 2 and wait 5
## Step 1 completed with: 11 results
## Step 2 completed with: 112 results
## File created on /script/path/links.txt
1つのコマンドでページをクロールし、Webページをフォルダに抽出することもできます:
$ python torcrawl.py -v -u http://www.github.com/ -c -d 2 -p 5 -e
## TOR is ready!
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com with step 1 and wait 5
## Step 1 completed with: 11 results
## File created on /script/path/FolderName/index.htm
## File created on /script/path/FolderName/projects.html
## ...
注: クローラーのリンク用のデフォルト(現時点では唯一)のファイルは links.txt ドキュメントです。また、クロール直後に抽出するには -e 引数を指定する必要があります
同じロジックに従い、これらのページをすべてパースして grep(例えば)で特定のテキストを検索できます:
$ python torcrawl.py -u http://www.github.com/ -c -e | grep '</html>'
</html>
</html>
...
1つのコマンドで、ページをクロールし、キーワード検索を実行して、検出結果に一致するWebページをフォルダに抽出できます: