[Python クローラー] Python がローカル エージェントを出力します

目次

序文

プロキシIPの使用

1.プロキシIPを取得する

2. 適切なプロキシ IP を選択します

3. プロキシIPを設定する

4. プロキシ IP を確認する

コード例

要約する

序文

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 を使用した完全なコード例を示します。

おすすめ

転載: blog.csdn.net/wq10_12/article/details/132874397
おすすめ