file_get_contents() での 403 Forbidden エラー
Web サイト スクレイパーを開発しようとして、開発者がリモートで 403 Forbidden エラーに遭遇しました。ローカルマシン上で問題なく file_get_contents() を使用している間、サーバーにアクセスできます。エラー メッセージは、HTTP リクエストが失敗したことを示しています。
検査の結果、php.ini 構成ファイルのallow_url_fopen 設定が有効であることが確認され、さらなる解決策の検索が必要になりました。エラーの原因を解明するには、PHP のデバッグ メカニズムを使用することが推奨されます。
具体的には、$http_response_header 変数は、各 file_get_contents() 呼び出しの後に応答 HTTP ヘッダーを提供できます。さらに、ignore_errors コンテキスト オプションは実際の応答を返し、403 エラーを説明できる可能性があります。
実際の分析によると、このエラーは Referer や User-Agent などの必要な HTTP ヘッダーの欠落が原因である可能性があります。これに対処するには、stream_context_create() を使用してカスタム コンテキストを作成し、実際のブラウザ リクエストをシミュレートしてユーザー エージェントを設定します。
$context = stream_context_create( array( "http" => array( "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36" ) ) ); echo file_get_contents("www.google.com", false, $context);
このコード例は、ユーザー エージェントの設定と Google へのリクエストの送信を示しています。 、効果的な Web スクレイピングのためにヘッダーを操作する方法を紹介します。
以上がWeb サイト スクレイパーがリモート サーバー上の「file_get_contents()」で 403 Forbidden エラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。