Google Colab と Jupyter でプロキシを設定する
さあ、Google ColabやJupyterでプロキシを実行する方法について早速見ていきましょう。面倒な作業はもう不要です。データのスクレイピング、地域制限の回避、あるいはプライバシーの確保など、プロキシは頼りになる存在です。ただし、ColabやJupyterのようなプラットフォームでは、独自の癖があるため、正しく使うにはコツが必要です。
Colab と Jupyter でプロキシを使用する理由
シナリオ | 代理権のメリット |
---|---|
ウェブスクレイピング | IP禁止を回避する |
地理的にブロックされたAPIへのアクセス | コンテンツのブロック解除 |
匿名での研究 | デジタルフットプリントを隠す |
プロキシソースの選択
さて、プロキシを探してインターネットの荒野を歩き回る前に、簡単にしましょう。 プロキシローラー はあなたの味方です。最新の無料プロキシをすぐにご利用いただけます。詳細は後ほど。
プロキシの種類
タイプ | 説明 | 一般的な用途 |
---|---|---|
HTTP/HTTPS | 標準ウェブプロキシ | ウェブスクレイピング、クローリング |
SOCKS4/SOCKS5 | 低レベルで、より多くのプロトコルをサポート | ストリーミング、P2Pなど |
回転 | IPを頻繁に変更する | レート制限の回避 |
居住の | 実際のユーザーIPはブロックしにくい | スクレイピング、自動化 |
ほとんどの Colab/Jupyter 作業では、HTTP/HTTPS プロキシが役立ちます。
ProxyRollerから無料プロキシを入手する
- へアクセス プロキシローラー.
- 「無料プロキシを入手」ボタンをクリックします。
- プロキシリストをコピーします。次のようなものになります。
ip:port
.
オーストラリアからのちょっとしたアドバイス: 無料のプロキシはメルボルンの天気のように変わりやすいので、プロキシをテストしてください。
Google Colab でのプロキシの設定
Colabは仮想マシン上で実行されるため、Python(および関連ライブラリ)にプロキシを使用するように指示する必要があります。Arvid流のやり方は以下の通りです。
HTTP/HTTPSプロキシの設定 requests
import requests
proxies = {
'http': 'http://username:password@proxy_ip:proxy_port',
'https': 'http://username:password@proxy_ip:proxy_port'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
- プロキシが認証を必要としない場合は省略してください
username:password@
.
ノートブックでプロキシをグローバルに設定する
すべてをプロキシ経由で送信したい場合もあります。環境変数を設定します。
import os
os.environ['http_proxy'] = 'http://proxy_ip:proxy_port'
os.environ['https_proxy'] = 'http://proxy_ip:proxy_port'
これで、これらの環境変数を尊重するすべてのライブラリ (requests、urllib など) がプロキシを使用するようになります。
プロキシのローテーション
養鶏場でディンゴのように苦労している場合は、プロキシをローテーションして禁止を回避してください。
import random
proxy_list = [
'http://ip1:port1',
'http://ip2:port2',
'http://ip3:port3'
]
def get_random_proxy():
return {'http': random.choice(proxy_list), 'https': random.choice(proxy_list)}
for i in range(10):
proxies = get_random_proxy()
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
Jupyter Notebook でプロキシを設定する
Colabとほぼ同じです。手順は次のとおりです。
のために requests
そして urllib
import requests
proxies = {
'http': 'http://proxy_ip:proxy_port',
'https': 'http://proxy_ip:proxy_port'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
システム全体のプロキシ(Jupyterカーネル)
import os
os.environ['HTTP_PROXY'] = 'http://proxy_ip:proxy_port'
os.environ['HTTPS_PROXY'] = 'http://proxy_ip:proxy_port'
Selenium(ヘッドレスブラウザ)の場合
Jupyter で Selenium を実行している場合 (ちょっとしたパワームーブ):
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
proxy_ip_port = 'proxy_ip:proxy_port'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy_ip_port}')
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://httpbin.org/ip')
プロキシ方式の比較
方法 | 範囲 | ツール/ライブラリ | 使用事例 |
---|---|---|---|
requests プロキシ |
リクエストごと | リクエスト、urllib3 | スクレイピング、API呼び出し |
環境変数 | グローバル(セッション) | すべてのライブラリ(ほとんど) | 一貫したプロキシの使用 |
Seleniumプロキシ | ブラウザ自動化 | セレン | Web自動化/スクレイピング |
プロキシのテスト
プロキシが機能しているかどうかを常にテストしてください。そうしないと、ぐるぐる回っている藪漕ぎのデジタル版になってしまう可能性があります。
import requests
proxies = {
'http': 'http://proxy_ip:proxy_port',
'https': 'http://proxy_ip:proxy_port'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print("Proxy IP:", response.json())
IP がプロキシと一致していれば、問題ありません。
よくある落とし穴(と簡単な解決策)
問題 | それはどのように見えるか | 修正方法 |
---|---|---|
接続タイムアウト | リクエストがハングし、応答がない | 別のプロキシを試す |
403/407 プロキシ認証が必要です | 認証エラー | 必要に応じてユーザー名/パスワードを使用してください |
Colabでプロキシが機能しない | IPに変更なし、エラー | 環境変数を確認する |
SSLの問題 | SSLハンドシェイクに失敗しました | HTTPを使用するか、verify=Falseを設定します |
役立つリソース
- ProxyRoller – 無料プロキシリスト
- Pythonはドキュメントを要求する
- Jupyter Notebook ドキュメント
- Google Colab に関するよくある質問
- Selenium プロキシドキュメント
これで完了です。ColabやJupyterでプロキシ設定をするために、ワニと格闘する必要はありません。最新のプロキシが必要な場合は、ProxyRollerが常にオープンで、攻撃を仕掛けることもありません。
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!