ProxyBroker は、プロキシ IP アドレスを自動的に取得して、IP アドレスのローテーションとクローラのアンチブロッキングを実装するための Python ライブラリです。複数のプロキシ IP ソースからプロキシ IP アドレスを取得でき、同時にカスタム プロキシ IP ソースをサポートします。ProxyBroker はマルチスレッドと非同期処理をサポートしており、同時実行性の高いクローラ シナリオで使用できます。
インストール方法:
pip install proxybroker
使用例:
import asyncio
from proxybroker import Broker
async def show(proxies):
while True:
proxy = await proxies.get()
if proxy is None: break
print('Found proxy: %s' % proxy)
proxies = asyncio.Queue()
broker = Broker(proxies)
tasks = asyncio.gather(broker.find(types=['HTTP', 'HTTPS'], limit=10), show(proxies))
loop = asyncio.get_event_loop()
loop.run_until_complete(tasks)
上記のコードは、最大 10 個の複数のプロキシ IP ソースから HTTP および HTTPS タイプのプロキシ IP を取得します。取得したプロキシ IP がコンソールに出力されます。ここでは、asyncio ライブラリを使用して非同期処理を実装します。
ProxyBroker でサポートされるプロキシ IP ソースには次のものがあります。
- HTTP(S) プロキシ IP プール
- SOCKS4/5 プロキシ IP プール
- DNS-over-HTTPS代理IP池
- カスタム プロキシ IP ソース
このうち、HTTP(S) プロキシ IP プールと SOCKS4/5 プロキシ IP プールは、プロキシ IP のデフォルトのソースであり、直接使用できます。DNS-over-HTTPS プロキシ IP プールは、有効な Google DNS-over-HTTPS アドレスを提供する必要があります。カスタム プロキシ IP ソースは、カスタム プロキシ IP ソース クラスを実装し、それをブローカー インスタンスに渡す必要があります。
ProxyBroker は、プロキシ IP アドレスの応答時間や匿名性などの指標に基づいたプロキシ IP のスクリーニングと並べ替えもサポートし、クローラの効率と安定性を向上させます。
ProxyBroker は、プロキシ IP アドレスの自動取得と管理を実現し、IP アドレスのローテーションとクローラのアンチブロッキング機能を向上させる強力な Python ライブラリです。