Github: https://github.com/imWildCat/scylla
人文科学のためのインテリジェントプロキシプールは、Python 3.6のみをサポートしています。 主な機能:
- 自動プロキシのIPクロールと検証
- 使いやすいJSON API
- シンプルで美しいウェブベースのユーザーインターフェース(例えば、プロキシの地理的分布)
- 最低でも1つのコマンドで開始する
- シンプルなHTTPフォワードプロキシサーバー
- 1行のコードで最小限の処理と統合が可能
- ヘッドレスブラウザのクロール
中国語を使いたい方は中国語の資料をお読みください。
始める
インストール
Dockerでインストールすることを強くお勧めします。
docker run -d -p 8899:8899 -p 8081:8081 -v /var/www/scylla:/var/www/scylla --name scylla wildcat/scylla:latest
pipで直接インストールする
pip install scylla
scylla --help
scylla # Run the crawler and web server for JSON API
ソースからインストールする
git clone https://github.com/imWildCat/scylla.git
cd scylla
pip install -r requirements.txt
npm install # or yarn install
make build-assets
python -m scylla
使用法
これはポート8899
を使用してサービスをローカルに実行する例です( localhost
)。
注意:Scyllaを初めて使用するときに、データベースにプロキシipsを作成するには、1〜2分待たなければならない場合があります。
JSON API
プロキシIPリスト
http://localhost:8899/api/v1/proxies
オプションのURLパラメータ:
パラメーター | デフォルト値 | 説明 |
---|---|---|
page |
1 |
ページ番号 |
limit |
20 |
各ページに表示されるプロキシの数 |
anonymous |
any |
匿名のプロキシを表示するかどうか。 可能な値: true 、匿名プロキシのみ。 false 、透明なプロキシのみ |
https |
any |
HTTPSプロキシを表示するかどうか。 可能な値: true 、HTTPSプロキシのみ。 false 、HTTPプロキシのみ |
countries |
なし | 特定の国のフィルタプロキシ 形式例: US 、または複数国: US,GB |
サンプル結果:
{
"proxies": [{
"id": 599,
"ip": "91.229.222.163",
"port": 53281,
"is_valid": true,
"created_at": 1527590947,
"updated_at": 1527593751,
"latency": 23.0,
"stability": 0.1,
"is_anonymous": true,
"is_https": true,
"attempts": 1,
"https_attempts": 0,
"location": "54.0451,-0.8053",
"organization": "AS57099 Boundless Networks Limited",
"region": "England",
"country": "GB",
"city": "Malton"
}, {
"id": 75,
"ip": "75.151.213.85",
"port": 8080,
"is_valid": true,
"created_at": 1527590676,
"updated_at": 1527593702,
"latency": 268.0,
"stability": 0.3,
"is_anonymous": true,
"is_https": true,
"attempts": 1,
"https_attempts": 0,
"location": "32.3706,-90.1755",
"organization": "AS7922 Comcast Cable Communications, LLC",
"region": "Mississippi",
"country": "US",
"city": "Jackson"
},
...
],
"count": 1025,
"per_page": 20,
"page": 1,
"total_page": 52
}
システム統計
http://localhost:8899/api/v1/stats
サンプル結果:
{
"median": 181.2566407083,
"valid_count": 1780,
"total_count": 9528,
"mean": 174.3290085201
}
HTTP転送プロキシサーバー
既定では、Scyllaはポート8081
HTTP転送プロキシサーバーを開始します。 このサーバーはデータベースから最近更新された1つのプロキシを選択し、フォワードプロキシとして使用されます。 HTTPリクエストが来ると、プロキシサーバーはプロキシをランダムに選択します。
注:HTTPS要求は現在サポートされていません。
このプロキシサーバーを使用したcurl
の例を以下に示します。
curl http://api.ipify.org -x http://127.0.0.1:8081
requests.get('http://api.ipify.org', proxies={'http': 'http://127.0.0.1:8081'})
Web UI
ブラウザでhttp://localhost:8899
を開き、このプロジェクトのWeb UIを表示します。
プロキシIPリスト
http://localhost:8899/
スクリーンショット:
グローバルな地理的分布図
http://localhost:8899/#/geo
スクリーンショット:
APIドキュメント
モジュールインデックスをお読みください。
ロードマップ
プロジェクトをご覧ください。
開発と貢献
git clone https://github.com/imWildCat/scylla.git
cd scylla
pip install -r requirements.txt
npm install # or `yarn install`
make build-assets
テスト
テストをローカルで実行する場合は、コマンドを以下に示します。
pip install -r tests/requirements-test.txt
pytest tests/
テストケースをこのプロジェクトに追加して、このプロジェクトの堅牢性を高めることを歓迎します。
このプロジェクトの名前
Scyllaは、アメリカのテレビシリーズ「 Prison Break」のメモリチップのグループの名前に由来しています。 このプロジェクトは、このアメリカのテレビシリーズにちなんで命名されました。
寄付
このプロジェクトが役に立ったら、お金を寄付していただけますか?
どんなにお金があっても、あなたの寄付は著者に新しい機能を絶えず開発するよう促します!
寄付の方法は次のとおりです。
PayPal
AlipayまたはWeChat Pay
ライセンス
Apache License 2.0 詳細については、 LICENSEファイルをお読みください。