目次
序文
Web クローリングを行う場合、プロキシを使用することが非常に重要です。クローラーの IP は Web サイトによってブロックされていることが多いため、プロキシによって実際の IP アドレスが隠蔽され、制限なくデータをクロールできるようになります。この記事では、プロキシ IP の使用とコード例を含め、Python でプロキシを出力する方法を紹介します。
プロキシIPの使用
プロキシ IP を使用する場合は、次の点に注意する必要があります。
1.プロキシIPを取得する
一部のプロキシ IP プロバイダーの Web サイトでは、プロキシ IP を無料で購入または取得できます。一部のプロキシ IP プロバイダーには次のものがあります。
- ミスターステーション
- ディッシュバードIP
- ハッピーエージェントなど
2. 適切なプロキシ IP を選択します
プロキシ IP が異なれば、速度、安定性、プライバシーのパフォーマンスも異なります。適切なプロキシ IP を選択すると、クローラーの効率とセキュリティが向上します。
3. プロキシIPを設定する
Python では、プロキシ IP を設定することで Web サイトにアクセスできます。リクエスト ライブラリを使用する場合、以下に示すように、プロキシ IP をパラメータとして get メソッドまたは post メソッドに渡すことができます。
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
response = requests.get("http://www.example.com", proxies=proxies)
上の例では、HTTP リクエストと HTTPS リクエスト用に 2 つのプロキシ IP を設定しました。プロキシ IP を独自の IP アドレスとポート番号に置き換えることができます。
4. プロキシ IP を確認する
プロキシIPを使用している場合、プロキシIPが無効になる場合があります。無効なプロキシ IP による時間の無駄を避けるために、以下に示すように、プロキシ IP バリデータを使用してプロキシ IP が有効かどうかを確認できます。
import requests
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
response = requests.get("http://www.example.com", proxies=proxies, timeout=5)
if response.status_code == 200:
print("代理 IP 有效")
else:
print("代理 IP 失效")
プロキシ IP バリデーターの役割は、HTTP リクエストを送信し、返された結果のステータス コードをチェックすることです。ステータス コードが 200 の場合、プロキシ IP は有効です。
コード例
以下は、プロキシ IP を使用した完全なコード例です。私たちはリクエスト ライブラリと BeautifulSoup ライブラリを使用して、トップ 250 の Douban 映画の映画名と評価を取得し、ブロックを避けるためにプロキシ IP を使用します。
import requests
from bs4 import BeautifulSoup
# 代理 IP
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
# 网站 URL
url = "https://movie.douban.com/top250"
# 发送 HTTP 请求
response = requests.get(url, proxies=proxies)
# 解析 HTML
soup = BeautifulSoup(response.text, "html.parser")
# 查找电影列表
movie_list = soup.find_all(class_="grid_view")[0].find_all("li")
# 遍历电影列表,输出电影名称和评分
for movie in movie_list:
title = movie.find_all("span", class_="title")[0].text
rating = movie.find_all("span", class_="rating_num")[0].text
print(title + " " + rating)
上記のコードのケースでは、プロキシ IP を使用して HTTP リクエストを送信し、プロキシ IP のアドレスとポート番号を設定しました。Douban Web サイトはクローラーに対して厳格であるため、プロキシ IP を使用すると、IP がブロックされるのを効果的に回避できます。
要約する
Python でプロキシ IP を使用すると、IP によるブロックを効果的に回避でき、クローラーの効率とセキュリティも向上します。プロキシ IP を使用する場合は、適切なプロキシ IP の選択、プロキシ IP の設定、およびプロキシ IP の有効性とセキュリティを確保するためのプロキシ IP の検証に注意する必要があります。この記事では、読者の参考のために、プロキシ IP を使用した完全なコード例を示します。