ホームページ  >  記事  >  バックエンド開発  >  phpはURLに基​​づいてWebコンテンツを取得します

phpはURLに基​​づいてWebコンテンツを取得します

WBOY
WBOYオリジナル
2016-06-23 13:53:001238ブラウズ

php で URL に基づいて Web ページのコンテンツを取得するのは非常に便利です。システムの組み込み関数 file_get_contents() を渡して、Web ページのコンテンツなどを返すことができます。 Baidu ホームページのコンテンツを取得するには:

<span style="font-family:Microsoft YaHei;font-size:18px;"><?php$html = file_get_contents('http://www.baidu.com/');echo $html;</span>

Baidu ホームページのコンテンツを表示します。 ただし、サーバーによってはこの機能が無効になったり、この機能が通過しないためにサーバーによって拒否されたりするため、この機能は万能ではありません。例:


<span style="font-family:Microsoft YaHei;font-size:18px;"><?php$html = file_get_contents('http://www.163.com/');echo $html;</span>

このコードは NetEase のホームページの完全なコードを取得できません。現時点では、他のメソッドを考える必要があります。



ここでは、Webページを簡単かつ効果的にキャプチャできるphpのcURLライブラリを紹介します。スクリプトを実行して、クロールした Web ページを分析するだけで、必要なデータをプログラムで取得できます。リンクから部分データを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。これを使用するには、まず php 設定ファイルで有効にする必要があります。これを開くときに、Windows でいくつかの DLL が必要になる場合があります。ここでの紹介は信じられませんが、phpinfo() を呼び出すことができます。確認して有効になっている場合は「読み込まれた拡張機能」に表示されます。


以下は、curl を使用して Web ページのコードを取得する簡単な例です:

<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="font-family:SimSun;font-size:24px;"><?php$ch = curl_init();$timeout = 10; // set to zero for no timeoutcurl_setopt ($ch, CURLOPT_URL,'http://www.163.com/');curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); <span style="color:#990000;">curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36');</span>curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);$html = curl_exec($ch);echo $html;</span></span>

このコードを通じて NetEase のホームページのコンテンツを出力できます。ここで赤でマークされたコードがキーです。ブラウザのエージェントがインストールされているため、サーバーはブラウザからアクセスされていると認識し、正しい HTML を返します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。