ホームページ バックエンド開発 Python チュートリアル Python クローラーのプロキシを設定する方法

Python クローラーのプロキシを設定する方法

Jun 13, 2019 pm 04:58 PM
python 演技 爬虫類

一部の Web サイトでは、対応するクローラー対策が行われます。たとえば、多くの Web サイトでは、一定期間内の特定の IP へのアクセス数を検出します。アクセス頻度が速すぎて正常に見えない場合は、訪問者のIPアクセスを禁止させていただく場合がございます。したがって、いくつかのプロキシ サーバーをセットアップし、時々プロキシを変更する必要がありますが、IP が禁止されていても、IP を変更してクロールを続行することはできます。

Python クローラーのプロキシを設定する方法

Python では、urllib2 の ProxyHandler を使用してプロキシ サーバーをセットアップできます。次のコードは、プロキシの使用方法を説明しています。上記 無料のオープンプロキシです。これらの無料プロキシは、いくつかのプロキシ Web サイトで収集できます。テスト後に使用できる場合は、収集してクローラーで使用します。


関連する推奨事項: 「

Python ビデオ チュートリアル

フリー エージェントの Web サイト:

西ソーンフリー エージェント

高速プロキシ 無料プロキシ

国内プロキシ IP

十分なプロキシがある場合は、それらをリストに入れて、Web サイトにアクセスするプロキシをランダムに選択できます。

import urllib2
# 构建了两个代理Handler,一个有代理IP,一个没有代理IP
httpproxy_handler = urllib2.ProxyHandler({"http" : "124.88.67.81:80"})
nullproxy_handler = urllib2.ProxyHandler({})
#定义一个代理开关
proxySwitch = True 
# 通过 urllib2.build_opener()方法使用这些代理Handler对象,创建自定义opener对象
# 根据代理开关是否打开,使用不同的代理模式
if proxySwitch:  
    opener = urllib2.build_opener(httpproxy_handler)
else:
    opener = urllib2.build_opener(nullproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
# 使用opener.open()方法发送请求才使用自定义的代理,而urlopen()则不使用自定义代理。
response = opener.open(request)
# 就是将opener应用到全局,之后所有的,不管是opener.open()还是urlopen() 发送请求,都将使用自定义代理。
# urllib2.install_opener(opener)
# response = urlopen(request)
print response.read()
ログイン後にコピー

上記はすべて無料のプロキシですが、安定性が低く、使用できないことが多いため、現時点ではプライベート プロキシの使用を検討してください。つまり、エージェント サプライヤーからエージェントを購入します。サプライヤーは、有効なエージェントに独自のユーザー名とパスワードを提供します。具体的な使用方法は、フリー エージェントの場合と同じです。これは、次のような追加のアカウント認証です。

import urllib2
import random
proxy_list = [
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"}
]
# 随机选择一个代理
proxy = random.choice(proxy_list)
# 使用选择的代理构建代理处理器对象
httpproxy_handler = urllib2.ProxyHandler(proxy)
opener = urllib2.build_opener(httpproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
response = opener.open(request)
print response.read()
ログイン後にコピー

上記は、urllib2を使ってプロキシを設定する方法が少し面倒に思えますが、リクエストを使ってプロキシを使用する方法を見てみましょう。

無料プロキシを使用します:

# 构建具有一个私密代理IP的Handler,其中user为账户,passwd为密码
httpproxy_handler = urllib2.ProxyHandler({"http" : "user:passwd@124.88.67.81:80"})
ログイン後にコピー

注: 漏洩を避けるために、アカウントのパスワードを環境変数に書き込むことができます

以上がPython クローラーのプロキシを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

テンプレートのメリットとデメリットは何ですか? テンプレートのメリットとデメリットは何ですか? May 08, 2024 pm 03:51 PM

テンプレートのメリットとデメリットは何ですか?

Deepseek Xiaomiをダウンロードする方法 Deepseek Xiaomiをダウンロードする方法 Feb 19, 2025 pm 05:27 PM

Deepseek Xiaomiをダウンロードする方法

Google AI、開発者向けに Gemini 1.5 Pro と Gemma 2 を発表 Google AI、開発者向けに Gemini 1.5 Pro と Gemma 2 を発表 Jul 01, 2024 am 07:22 AM

Google AI、開発者向けに Gemini 1.5 Pro と Gemma 2 を発表

わずか 250 ドルで、Hugging Face のテクニカル ディレクターが Llama 3 を段階的に微調整する方法を教えます わずか 250 ドルで、Hugging Face のテクニカル ディレクターが Llama 3 を段階的に微調整する方法を教えます May 06, 2024 pm 03:52 PM

わずか 250 ドルで、Hugging Face のテクニカル ディレクターが Llama 3 を段階的に微調整する方法を教えます

いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する May 06, 2024 pm 04:43 PM

いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する

どうやって彼にdeepseekに尋ねますか どうやって彼にdeepseekに尋ねますか Feb 19, 2025 pm 04:42 PM

どうやって彼にdeepseekに尋ねますか

評価関数の保存方法 評価関数の保存方法 May 07, 2024 am 01:09 AM

評価関数の保存方法

NET40とはどのようなソフトウェアですか? NET40とはどのようなソフトウェアですか? May 10, 2024 am 01:12 AM

NET40とはどのようなソフトウェアですか?

See all articles