Python クローラー - プロキシ IP の正しい使用

        主な内容:プロキシIPの使い方の原則、自作クローラにプロキシIPを設定する方法、プロキシIPが有効かどうかの見分け方、有効でない場合、どこに問題があるか、個人利用(有償)のプロキシIP。

目次

プロキシ IP の原則

URL を入力するとどうなりますか?

プロキシIPは何をしましたか?

プロキシを使用する理由

プロキシ IP はクローラー コードで使用されます

プロキシ IP の取得

プロキシ IP が有効かどうかを確認する

有効になっていない問題のトラブルシューティング

1. 要求プロトコルが一致しません

2. プロキシの失敗


プロキシ IP の原則

URL を入力するとどうなりますか?

1. ブラウザがドメイン名を取得

2. DNS プロトコルを介して、ドメイン名に対応するサーバーの IP アドレスを取得します。

3. ブラウザと対応するサーバーは、スリーウェイ ハンドシェイクを通じて TCP 接続を確立します。

4. ブラウザは、HTTP プロトコルを介してサーバーにデータ要求を送信します。

5. サーバーがクエリ結果をブラウザに返す

6. 4 回手を振って TCP 接続を解放します

7.ブラウザのレンダリング結果

これには以下が含まれます:

アプリケーション層: HTTP および DNS

トランスポート層: TCP UDP

ネットワーク層: IP ICMP ARP

プロキシIPは何をしましたか?

簡単に言えば、次のとおりです。

もともとあなたの訪問

プロキシを使用した後の訪問

プロキシを使用する理由

        爬虫類を作っていると、こういう場面によく遭遇するので、最初はクローラーが正常に動いて、データを取得している様子がとても綺麗に見えますが、お茶を飲んでいると、403 Forbidden などのエラーが発生することがあります。見てみると、「あなたのIPアクセス頻度が高すぎます」のようなプロンプトが表示される場合があります. この現象の理由は、Web サイトがクローラー対策を講じているためです。たとえば、サーバーは特定の IP に対する単位時間内のリクエスト数を検出し、このしきい値を超えると、サービスを直接拒否し、エラー メッセージを返します. このような状況を IP ブロッキングと呼ぶことができます. プロキシ ip はこの問題を回避します。

プロキシ IP はクローラー コードで使用されます

リクエスト時にヘッダーをマスカレードするのと同じように、IP をマスカレードします。{}に注意してください。

proxies = {
           'https':'117.29.228.43:64257',
           'http':'117.29.228.43:64257'
       }

requests.get(url, headers=head, proxies=proxies, timeout=3) #proxies

プロキシ IP の取得

proxiesに格納した        ばかりのプロキシと同様に、リクエストのパラメータとして直接使用できます。それでは、プロキシを作成しましょう

        最初にプロキシ IP プロバイダーを開きます。ここで IPIDEA を選択します (チャネルは常に広告と見なされます。リンクは下に配置されています。新規ユーザー登録のための無料トライアルがあることを覚えています)。通常、API を使用して取得します。つまり、インターフェイスは必要な IP を直接取得し、サプライヤーは提供された IP 情報を返します。

 必要に応じて調整できます。

        ここで URL からクリックして API を使用してデモンストレーションを行うと、URL リンクが生成されます. このリンクを直接リクエストして、プロキシ IP の詳細情報を取得します.

# 拿到供应商给我们的代理IP
URL = "https://www.ipidea.net/?utm-source=csdnhao&utm-keyword=%3Fcsdnhao"

# 这里参数控制了数量 格式 和ip协议等等 这也算是它的一个优势吧,多的话可以提取几百,而且可以指定城市从固定地点提取ip,更符合爬虫模拟人类的行为特征。
url = "http://api.proxy.ipidea.io/getProxyIp?num=1&return_type=txt&lb=1&sb=0&flow=1&regions=&protocol=http"

# 输出ip
res = requests.get(url)
print(res.text)
# 这个ip就可以放在我们实际要请求的网页requests中了

プロキシ IP が有効かどうかを確認する

IP アドレスを返す Web サイトにアクセスします。

print(requests.get('http://httpbin.org/ip', proxies=proxies, timeout=3).text)

        重要な点は、プロキシ IP を使用してアクセスすることです.返された IP が私の IP ではない場合、プロキシ IP が利用可能であり、偽装することができ、必要な情報を取り戻すのにも役立つことを意味します.

私が使用した 4 つの異なるプロキシ IP を見てみましょう。これらはすべて有効です。

有効になっていない問題のトラブルシューティング

それでもローカル アドレスを返す場合は、99% が次の 2 つのいずれかを試します。

1. 要求プロトコルが一致しません

簡単に言えば、http を要求する場合は http プロトコルを使用する必要があり、https である場合は https プロトコルを使用する必要があります。

リクエストが http で https のみの場合、ローカル IP が使用されます。

        要は、入手したエージェントが両方に対応しているということですが、私のように設定しなければならないのは鳥を買うようなもので、飛ばす余地を与えないと飛べないのは当然です。これは私たちのものです。

2. プロキシの失敗

        これは私たちの問題ではありません。いわゆる安いものは良くない、良いものは安くはありません。大規模な爬虫類が本当に必要な場合は、プロキシ IP を購入することをお勧めします.オンライン広告を使用するプロキシには、実際の費用対効果が少し低いものがあります.私がよく使用するものは既に共有しており、あまりお勧めしません.私がそれらを知らない場合。

        もちろん、あなたが趣味であれば、インターネットでフリーエージェントを見つけてプレイすることもできますが、その効果は実際にはあまり良くありません。. . . .

おすすめ

転載: blog.csdn.net/qq_52213943/article/details/124424365