PythonのRequestsモジュールでプロキシを使う方法

ガイド, ハウツー, プロキシ, マー1620225分で読める

すべてのコンピュータは、インターネットに接続されているときにコンピュータとその地理的位置を識別する一意のインターネットプロトコル(IP)アドレスを取得します。コンピュータは、インターネットから何らかの情報を必要とするたびにリクエストを送信します。リクエストは、要求されている情報のタイプをチェックするターゲットコンピュータに送信されます。ターゲット

すべてのコンピュータは、インターネットに接続されているときにコンピュータとその地理的位置を識別する一意のインターネットプロトコル(IP)アドレスを取得します。コンピュータは、インターネットから何らかの情報を必要とするたびにリクエストを送信します。リクエストは、要求されている情報のタイプをチェックするターゲットコンピュータに送信されます。ターゲットコンピュータは、私たちのIPアドレスに情報を提供することが許可されている場合、情報を送り返します。時には、コンピュータは特定されることなくインターネットから情報を得ようとします。その情報は通常ブロックされるが、クライアントとサーバー・マシンの間で仲介役を果たすプロキシを使えば、情報を得ることができる。

それぞれのプロキシサーバーにはIPアドレスがあり、ユーザーがプロキシ経由でウェブサイトにアクセスしようとすると、ウェブサイトはプロキシサーバーのIPにデータを送信し、そのIPがユーザーにデータを転送する。

  • プロキシはウェブスクレイパーの身元を隠し、そのトラフィックを一般ユーザーのトラフィックのように見せる。
  • プロキシは、ウェブサイトに追加のセキュリティを提供し、インターネットトラフィックのバランスをとる。
  • プロキシは、ウェブユーザーのデータを保護したり、国の検閲機構によってブロックされたウェブサイトへのアクセスを支援したりする。

PythonのRequestsモジュールでプロキシを使う

Pythonリクエストでプロキシを使用するには、以下の手順に従う必要がある。

輸入リクエスト

シンプルなHTTPライブラリであるrequestsパッケージをインポートする。手動でURLにクエリー文字列を追加しなくても、このパッケージを使って簡単にリクエストを送信できます。requestsは以下のコマンドでインポートできます。

輸入リクエスト

辞書の作成

HTTP接続とHTTPS接続を定義するプロキシ辞書を作成する必要がある。辞書変数には、プロキシURLにプロトコルをマッピングする "proxies "のような任意の名前を与えることができる。さらに、URL変数にスクレイピングするウェブサイトを設定する必要がある。

proxies = {
  "http":'http://203.190.46.62:8080',
  "https":'https://111.68.26.237:8080'
}
url = 'https://httpbin.org/ip'

ここで辞書は、HTTPとHTTPSという2つの別々のプロトコルのプロキシのURLを定義する。

応答変数の作成

リクエストメソッドのいずれかを使用するレスポンス変数を作成する必要があります。このメソッドは2つの引数をとります:

  • 作成したURL
  • あなたが定義した辞書
response = requests.get(url,プロキシ = プロキシ)
print(response.json())

出力はこうだ:

Pythonのrequestsモジュールを使って、以下のようにIPアドレスをローテートすることもできる。

以下のコマンドを使ってrequestsモジュールをインポートする必要がある。

輸入リクエスト

sending_request関数の作成

ほとんどのフリーのプロキシはhttpsプロトコルを使用しないため、sending_request関数を作成し、httpプロキシを使用することを好む。ほとんどの無料プロキシは動作しないので、try-exceptブロックを使用した。

def sending_request(session, proxy):
    try:
        response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
        print(response.json())
    except:
        pass

proxies_txtを読む

無料プロキシのリストを含むlist_proxy.txtファイルを読み、proxiesという変数に保存しなければならない。

if__name__ =="__main__"with open('list_proxies.txt','r')as file:
        プロキシ =file.readlines()

セッションの作成

リクエストモジュールからセッションを作成し、以下の手順に従ってください。

  • プロキシをループする
  • sending_request関数にプロキシとセッションを渡す。
withrequests.Session()assession:
   forproxyinproxies:
        sending_request(session, proxy)

以下のようなプロキシのリストが表示されます。

これらはいくつかのプロキシであり、さらに多くのプロキシがリストアップされているが、それらはすべて機能しない。

プロキシの必要性

すべての企業は、プロキシを使用する5つの重要な企業理由を知っておく必要があります。

機密タスクの匿名実行

プロキシはウェブトラフィックを匿名化する機能でよく知られている。しかし、ほとんどの人はビジネス業界におけるその重要性を理解していない。プロキシサーバーによって、セキュリティ担当者や記者は自分自身、会社、情報源、顧客、パートナーを守ることができる。

また、開発や現在の研究、その他の企業活動を保護するためにプロキシを使用することもできます。あなたの会社がプロキシを使用し、潜在的なスパイがウェブトラフィックを追跡して、あなたのビジネスが何を開発しているかを判断するとします。その場合、あなたの従業員を簡単に追跡することはできません。

企業と組織のセキュリティ向上

データ漏洩が社会的イメージと金銭的損失の両面で大きな代償を伴うことはご存知の通りだ。そのため、企業はハッカーについて心配している。しかし、プロキシはデータ漏洩の可能性を減らすことができるので、あなたを助けることができます。プロキシサーバーは、サーバーと外部トラフィックの間に追加のセキュリティ層を追加します。プロキシサーバーはまた、インターネットに面し、ネットワーク外のコンピュータからのリクエストを中継するバッファとしても機能します。

ハッカーがあなたのプロキシサーバーにアクセスできたとしても、データが保存されているウェブソフトウェアを実行するサーバーに到達するのは困難である。

従業員のインターネット利用の管理

データ漏洩が社会的イメージと金銭的損失の両面で大きな代償を伴うことはご存知の通りだ。そのため、企業はハッカーについて心配している。しかし、プロキシはデータ漏洩の可能性を減らすことができるので、あなたを助けることができます。プロキシサーバーは、サーバーと外部トラフィックの間に追加のセキュリティ層を追加します。プロキシサーバーはまた、インターネットに面し、ネットワーク外のコンピュータからのリクエストを中継するバッファとしても機能します。

ハッカーがあなたのプロキシサーバーにアクセスできたとしても、データが保存されているウェブソフトウェアを実行するサーバーに到達するのは困難である。

帯域幅の節約と高速化の実現

プロキシサーバーはバックグラウンドで大量の仕事をこなすため、インターネットの速度が遅くなると思い込んでいる人がいる。しかし、それは必ずしも真実ではありません。プロキシサーバーは、帯域幅を節約し、速度を向上させるために使用することができます:

  • 複数のユーザーがアクセスするウェブページやファイルのキャッシュ
  • トラフィックの圧縮
  • ウェブサイトから広告を取り除く

どのプロキシを使うべきか?

というような、ビジネスにすべてのメリットを提供する唯一のタイプのプロキシがあると思うかもしれない:

  • データ漏洩の防止
  • 競争力のある価格設定
  • ソーシャルメディアで貴重なデータを収集する
  • 効果的なSEO戦略の構築

実際には、利用可能なプロキシには多くの種類があり、どのプロキシを使用するかは要件や使用ケースによって異なります。

以下に最も一般的なプロキシの種類を示す。

データセンター・プロキシ

データセンター・プロキシは、世界中の企業で使用されている最も一般的なプロキシです。データセンターはこれらのプロキシを製造・管理しています。これらのプロキシは安価で簡単に入手できるため、システムのセキュリティを向上させる必要がある場合に使用することができます。しかし、ボットのような活動を連想させるため、使用を禁止しているウェブサイトもある。

レジデンシャル・プロキシ

レジデンシャル・プロキシは、物理的な住居に関連付けられ、インターネット・サービス・プロバイダー(ISP)が提供する実在の人物のIPアドレスを使用する。これを使用してウェブサイトに接続すると、日常的なユーザーのように見えます。そのため、検知されたり禁止されたりする可能性は低くなる。住宅用プロキシを使用して大量のウェブデータをスクレイピングし、匿名性とセキュリティを向上させることができます。

結論

これまで、 プロキシはクライアントとサーバーマシンの間の中継として機能することを説明した。あなたが情報を要求するたびに、あなたのコンピュータはこの要求をプロキシに送信し、プロキシは別のIPアドレスを使用してターゲットコンピュータに情報を送信します。そのため、あなたのIPアドレスは機密のままです。さらに、Pythonのrequestsモジュールでプロキシを使用し、必要に応じて様々なアクションを実行することができます。データセンター型 プロキシの速度と居住型プロキシの高い匿名性を備えた静的IPが必要な場合は、静的プロキシが適しています。逆に、ローテーションプロキシは、テストやスクレイピングにおいてメリットがあります。