PyisonはAIウェブクローラー用のタールピットです。
このプロジェクトをローカルフォルダにクローンします
config/config.jsonファイルの設定を変更します
random-seedをランダムな数値に設定します!port番号を設定します(オプションですが推奨) HTMLテンプレート、CSS、画像、robots.txtをお好みで更新します
(オプション) 影響を受けるボットを変更したい場合はrobots.txtを編集します
以下のいずれかの方法でサーバー環境をセットアップします
サーバーをリバースプロキシの背後に配置します
pip install nltkpython3 src/server.pyhttp://localhost:<ポート番号> をブラウザで開くservices:
pyison:
image: "ghcr.io/jonaslong/pyison:main"
container_name: pyison
tty: true
ports:
- 80:80
docker compose up
-d フラグを使用してコンテナからデタッチしますdocker run --tty --name pyison -p "127.0.0.1:80:80" --rm ghcr.io/jonaslong/pyison:main
--rm フラグを削除してコンテナを永続化しますdocker build -t pyison:latest .docker run --tty --name pyison -p "127.0.0.1:80:80" --rm pyison:latest でコンテナを実行このコンテンツを配信するには、リバースプロキシを使用することを強くお勧めします。ページのキャッシュとレート制限の導入によりサーバー負荷を軽減し、HTTPS経由でのコンテンツ配信や、いくつかの基本的なウェブサーバー攻撃からの保護が可能です。
User-Agent HTTPヘッダーをNPMからPyisonサーバーに渡すはずです。必要に応じてproxy_pass_header User-Agent;を使用してください。UIで以下の設定を選択するか、設定ファイルに同等の設定を入力します:
tarpit.example.com など、管理下にあるドメインまたはサブドメインhttplocalhost、またはDockerネットワークを使用している場合はDockerコンテナ名80)Cache AssetsとBlock Common Exploitsを有効にし、Websockets Supportは有効にしないサブパスでPyisonを使用するには、以下のロケーション設定を使用します
# ルートページを処理 ("example.com/tarpit")
location /tarpit {
proxy_pass http://localhost:80;
}
# すべてのサブページを処理 ("example.com/tarpit/a" および "example.com/tarpit/a/b")
location /tarpit/ {
proxy_pass http://localhost:80;
}
# 3文字のファイル拡張子を持つすべてのURLを処理 ("example.com/tarpit/style.css" および "example.com/tarpit/images/picture.jpg")
# ~ は正規表現マッチングを示すことに注意。その直後の文字列は有効な正規表現である必要があります。
location ~ .*\/tarpit\/.*\....$ {
proxy_pass http://localhost:80;
}
UIを使用した動作する設定例:
/tarpitにはカスタム設定はありません。上記で定義された最初のロケーションブロックと同じように動作します。/tarpit/には、上記で定義された2番目と3番目のロケーションブロックが含まれますtarpitを目的のルートパスに置き換えてください。
/tar/pitのようなより深いルートパスを使用する場合、3番目のロケーションブロックは正規表現を使用するため、スラッシュはバックスラッシュでエスケープする必要があることに注意してください
/tar/pitの場合、3番目のロケーションブロックでlocation ~ .*\/tar\/pit\/.*\....$が必要document-root設定を更新します(設定セクションを参照)