この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
技術チャット
›
分散クローラーがプロキシIPを利用するためのいくつかのスキーム
眺める:
13152
|
答える:
2
分散クローラーがプロキシIPを利用するためのいくつかのスキーム
[リンクをコピー]
クズども
掲載地 2018/07/17 13:54:35
|
|
|
プロキシIPがなければクローラー作業は困難になるため、多くのクローラーエンジニアは効率的で安定したプロキシIPを購入する必要があります。 高品質なプロキシIPがあれば、リラックスして座っていられますか? 物事はそれほど単純ではなく、スキームの最適化、合理的配分、作業効率の向上、クローラー作業の効率化、より効率的かつ速く、より安定的に行うことも必要です。
選択肢1
各プロセスはインターフェースAPIからIPリストをランダムに選択し(例えば100個ずつ抽出)、それらを順番に切り替え、失敗した場合はAPIを呼び出して取得します。一般的なロジックは以下の通りです。
1. 各プロセス(またはスレッド)はインターフェースからランダムにIPのバッチを取得し、ループでIPリストからデータを取得しようとします。
2. アクセスが成功した場合は、次の1つを引き続き取得します。
3. 失敗した場合(タイムアウトや検証コードなど)、インターフェースからIPの一括を取得して再試行します。
解決策の欠点:各IPには有効期限があり、100個抽出された場合、10番目のIPを使うとほとんどの有効期限が無効になることがあります。 もしHTTPリクエストを接続タイムアウト3秒、読み取りタイムアウトを5秒に設定した場合、3〜8秒の時間を無駄にし、その3〜8秒が何十回も取得される可能性があります。
選択肢2
各プロセスはインターフェースAPIからランダムなIPを取得して使用し、失敗した場合はAPIを呼び出してIPを取得します。一般的なロジックは以下の通りです。
1. 各プロセス(またはスレッド)はインターフェースからランダムにIPを取得し、そのIPを使ってリソースにアクセスする。
2. アクセスが成功した場合は、次の1つを引き続き取得します。
3. 失敗した場合(タイムアウトや検証コードなど)、インターフェースからランダムにIPを選択し、再試行を行います。
欠点:IPアドレスを取得するためにAPIを呼び出すのは非常に頻繁であり、プロキシサーバーに大きな負荷をかけ、APIインターフェースの安定性に影響を与え、抽出が制限されることがあります。 この制度も適切ではなく、持続可能かつ安定した運営ができません。
選択肢3
まず、大量のIPを抽出してローカルデータベースにインポートし、その後データベースからIPを取得します。一般的なロジックは以下の通りです。
1. データベース内にテーブルを作成し、インポートスクリプトを書き、APIを1分あたりのAPIリクエスト(プロキシIPサービスプロバイダーの提案を参照)し、IPリストをデータベースにインポートします。
2. インポート時間、IP、ポート、有効期限、IPの利用可能状況およびその他のデータベース内のフィールドを記録する。
3. グラブスクリプトを書き、クラブスクリプトがデータベースから利用可能なIPを読み込み、各プロセスが利用のためにデータベースからIPを取得します。
4. クロールを行い、結果を判断し、クッキーを処理するなど。認証コードや失敗がある場合は、このIPを放棄し新しいIPに変更します。
このソリューションはプロキシサーバーリソースの消費を効果的に回避し、プロキシIPの利用を効果的に割り当て、より効率的かつ安定し、クローラー作業の耐久性と安定性を保証します。
先の:
HreflangのSEOへの使い方
次に:
エラー1093(HY000):updaのターゲットテーブル「xxx」を指定することはできません...
関連記事
•
MinIOストレージ(iii)ローカルファイルをminioバケットにコピーアップロード(移行)する
•
ブロックチェーン合意メカニズム:PoW、PoS、DPoS(ポイント・フォー・スー・フォー・ス)
•
.NET/C#コンソールサービスはConsulサービスディスカバリーに登録されています
•
Google spider (crawler) Googlebot server IP segment
•
バーチャル俳優:Dapr vs Orleans
•
Dapr (1) Dapr 導入とインストールチュートリアル
•
【実践実践】XXL-JOB 分散タスクスケジューリングプラットフォームの利用と開発チュートリアル
•
.NET CoreはRedis Lua(ソースコード付き)に基づく分散ロックを実装しています
•
ASP.NET コア(5)はCAP分散トランザクションに基づいています
•
分散トランザクションの2PCおよび3PCモデル
スピン100
掲載地 2018/07/18 14:50:55
|
スキーム3とスキーム1は同じではないでしょうか?大量のIPを抽出し、後で使わないIPはすぐに期限切れになります
HDIXJLH003
掲載地 2019/01/29 21:06:25
|
マーク、アイデアは覚えたから、書いてみるよ
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com