Web サイトのクローラー対策戦略に対処する方法: PHP と phpSpider の対処のヒント!
インターネットの発展に伴い、データを保護するためにクローラー対策を取る Web サイトが増えています。開発者にとって、クローラー対策戦略に遭遇すると、クローラー プログラムが適切に実行できなくなる可能性があるため、それに対処するにはいくつかのスキルが必要です。この記事では、参考までに、PHP と phpSpider の対処スキルをいくつか紹介します。
Web サイトのクローラー対策戦略の主な目標の 1 つは、クローラー リクエストを特定することです。この戦略に対処するには、リクエスト ヘッダーを変更することでブラウザ ユーザーになりすますことができます。以下は、PHP コードを使用してリクエスト ヘッダーを変更する例です。
$url = 'https://example.com'; $opts = array( 'http' => array( 'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36', ), ); $context = stream_context_create($opts); $response = file_get_contents($url, false, $context);
上記のコードは、指定された User-Agent フィールドを使用してリクエストを送信します。そのため、Web サイトはリクエストがクローラーからのものであることを簡単に識別できません。 。
多くの Web サイトでは Cookie を使用してユーザーの身元を確認し、リクエストが正当なユーザーからのものであるかどうかを判断することもできます。このタイプの Web サイトに適切にアクセスするには、Cookie を処理する必要があります。 phpSpider で Cookie を使用するサンプル コードは次のとおりです。
$spider = new phpspider(); $spider->cookie = 'user=123456'; $spider->on_fetch_url = function ($url, &$html, $spider) { $html = curl_request($url, false, $spider->cookie); return true; }; $spider->start();
上記のコードでは、Cookie の値を user=123456
に設定し、Web ページをリクエストするときにパラメータとして渡します。このようにして、Web サイトは私たちが正規のユーザーであると認識します。
Web サイトは、IP アドレスに基づいてリクエストの正当性も判断します。この状況に対処するには、プロキシ IP を使用して実際の IP を隠すことができます。 phpSpider でプロキシ IP を使用するサンプル コードは次のとおりです。
$spider = new phpspider(); $spider->proxy = '127.0.0.1:8888'; $spider->on_fetch_url = function ($url, &$html, $spider) { $html = curl_request($url, false, false, $spider->proxy); return true; }; $spider->start();
上記のコードでは、プロキシ IP を 127.0.0.1:8888
に設定し、パラメータの受け渡しとして使用します。このようにして、Web サイトは IP アドレスによってリクエストを識別できなくなります。
要約すると、上記は Web サイトのクローラ対策戦略に対処するための PHP および phpSpider のいくつかのテクニックです。もちろん、これらは基本的な方法の一部にすぎず、具体的な戦略はさまざまな Web サイトに応じて調整する必要があります。クローラー プログラムを正常に実行できるようにするには、学習と探索を続ける必要もあります。この記事が皆さんのお役に立てれば幸いです!
以上がこの記事の全内容です。お役に立てば幸いです。
以上がWeb サイトのクローラー対策戦略に対処する方法: PHP と phpSpider のヒント!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。