GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

imWildCat

scylla – Humans™用インテリジェントプロキシプール

投稿日:

Humans™用インテリジェントプロキシプール https://scylla.wildcat.io

人文科学のためのインテリジェントプロキシプールは、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ファイルをお読みください。







-imWildCat
-, , , ,

執筆者: