Google ColabとJupyterでプロキシを使用する方法

Google ColabとJupyterでプロキシを使用する方法

Google Colab と Jupyter でプロキシを設定する

さあ、Google ColabやJupyterでプロキシを実行する方法について早速見ていきましょう。面倒な作業はもう不要です。データのスクレイピング、地域制限の回避、あるいはプライバシーの確保など、プロキシは頼りになる存在です。ただし、ColabやJupyterのようなプラットフォームでは、独自の癖があるため、正しく使うにはコツが必要です。


Colab と Jupyter でプロキシを使用する理由

シナリオ 代理権のメリット
ウェブスクレイピング IP禁止を回避する
地理的にブロックされたAPIへのアクセス コンテンツのブロック解除
匿名での研究 デジタルフットプリントを隠す

プロキシソースの選択

さて、プロキシを探してインターネットの荒野を歩き回る前に、簡単にしましょう。 プロキシローラー はあなたの味方です。最新の無料プロキシをすぐにご利用いただけます。詳細は後ほど。


プロキシの種類

タイプ 説明 一般的な用途
HTTP/HTTPS 標準ウェブプロキシ ウェブスクレイピング、クローリング
SOCKS4/SOCKS5 低レベルで、より多くのプロトコルをサポート ストリーミング、P2Pなど
回転 IPを頻繁に変更する レート制限の回避
居住の 実際のユーザーIPはブロックしにくい スクレイピング、自動化

ほとんどの Colab/Jupyter 作業では、HTTP/HTTPS プロキシが役立ちます。


ProxyRollerから無料プロキシを入手する

  1. へアクセス プロキシローラー.
  2. 「無料プロキシを入手」ボタンをクリックします。
  3. プロキシリストをコピーします。次のようなものになります。 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を設定します

役立つリソース


これで完了です。ColabやJupyterでプロキシ設定をするために、ワニと格闘する必要はありません。最新のプロキシが必要な場合は、ProxyRollerが常にオープンで、攻撃を仕掛けることもありません。

アルヴィド・ワラル

アルヴィド・ワラル

リードネットワークアーキテクト

太陽が照りつける国出身の Arvid Warral は、ProxyRoller の堅牢で機敏なネットワーク アーキテクチャの立役者です。デジタル セキュリティとプロキシ管理で 20 年以上の経験を持つ彼は、プライバシーとデータ セキュリティのダイナミックなニーズに応えるシステムの開発に尽力してきました。Arvid の ProxyRoller でのキャリアは、情熱的な技術者として始まり、彼の革新的なソリューションは、同社を業界の最前線へと押し上げました。彼は、ProxyRoller の製品が世界中のユーザーにとって最先端で信頼できるものであり続けるよう尽力しています。

コメント (0)

まだコメントはありません。あなたが最初のコメントを投稿できます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です