ホームページ  >  記事  >  バックエンド開発  >  PHP プラットフォーム開発を更新する場合、ページをクロールするいくつかの方法

PHP プラットフォーム開発を更新する場合、ページをクロールするいくつかの方法

WBOY
WBOYオリジナル
2016-06-23 14:37:44809ブラウズ

ネットワーク プログラムを開発する場合、多くの場合、非ローカル ファイルを取得する必要があります。通常、PHP を使用してブラウザ アクセスをシミュレートし、http リクエストを通じて URL アドレスにアクセスし、HTML ソース コードまたは XML データを取得します。データを直接出力することはできません。多くの場合、コンテンツを抽出して、よりわかりやすい方法で表示するためにフォーマットする必要があります。

以下は、PHP クローリング ページのいくつかの方法と原則を簡単に紹介します。

1. PHP クローリング ページの主なメソッド:

1. file() 関数

2. 3. fopen()->fread()->fclose() モード

5. fsockopen() 関数ソケット モード

6. ://sourceforge .net/projects/snoopy/)

2. PHP が HTML または XML コードを解析する主な方法:


1. file() 関数

2.関数

file_get_contents と fopen を使用する必要があります。スペースは、allow_url_fopen を開きます。方法: php.ini を編集し、allow_url_fopen = On に設定します。allow_url_fopen がオフの場合、fopen も file_get_contents もリモート ファイルを開くことができません。

<?php//定义url$url='http://t.qq.com'; //fiel函数读取内容数组$lines_array=file($url); //拆分数组为字符串 $lines_string=implode('',$lines_array); //输出内容,嘿嘿,大家也可以保存在自己的服务器上echo $lines_string; 

3. fopen()->fread()->fclose() モード


<?php //定义url $url='http://t.qq.com'; //file_get_contents函数远程读取数据$lines_string=file_get_contents($url); //输出内容,嘿嘿,大家也可以保存在自己的服务器上 echo htmlspecialchars($lines_string);

4.curl を使用して、curl を開きます。方法: Windows で php.ini を変更し、extension=php_curl.dll の前のセミコロンを削除し、ssleay32.dll と libeay32.dll を C:WINDOWSsystem32 にコピーします。Linux では、curl 拡張機能をインストールします。

<?php //定义url$url='http://t.qq.com'; //fopen以二进制方式打开   $handle=fopen($url,"rb");//变量初始化$lines_string="";//循环读取数据do{         $data=fread($handle,1024);         if(strlen($data)==0) {         break;        }     $lines_string.=$data; }while(true);//关闭fopen句柄,释放资源fclose($handle); //输出内容,嘿嘿,大家也可以保存在自己的服务器上echo $lines_string;

5. fsockopen() 関数のソケット モード

ソケット モードが正しく実行できるかどうかは、サーバーで有効になっている通信プロトコルを phpinfo で確認できます。

<?php // 创建一个新cURL资源$url='http://t.qq.com'; $ch=curl_init(); $timeout=5; // 设置URL和相应的选项curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);// 抓取URL$lines_string=curl_exec($ch); // 关闭cURL资源,并且释放系统资源curl_close($ch);//输出内容,嘿嘿,大家也可以保存在自己的服务器上echo $lines_string;

6. スヌーピー プラグイン、最新バージョンは Snoopy-1.2.4.zip 最終更新日: 2013-05-30 です。


非常に人気のあるスヌーピーを使用することをお勧めします。これは非常に強力な収集プラグインであり、ブラウザの情報をシミュレートするためにエージェントを設定することもできます。

<?php$fp = fsockopen("t.qq.com", 80, $errno, $errstr, 30);if (!$fp) {    echo "$errstr ($errno)<br />\n";} else {    $out = "GET / HTTP/1.1\r\n";    $out .= "Host: t.qq.com\r\n";    $out .= "Connection: Close\r\n\r\n";    fwrite($fp, $out);    while (!feof($fp)) {        echo fgets($fp, 128);    }    fclose($fp);}


注: エージェントの設定は、Snoopy.class.php ファイルの 45 行目にあります。ファイル内で「var $agent」(引用符内の内容) を検索してください。 PHP を使用してブラウザのコンテンツを取得できます。

echo $_SERVER['HTTP_USER_AGENT']; を使用してブラウザの情報を取得し、エコーされたコンテンツをエージェントにコピーするだけです。


南風公園 -- より本格的な PHP プラットフォーム開発

南風は最初に多くのことを共有しましたが、今後も私のガジェットを皆さんと共有し続けます。共有万歳、テクノロジーは永遠に残ります。

このページの全ページアドレス: http://www.cnblogs.com/rirber/archive/2013/06/15/php-server-get-curl-data.html

このページの短縮 URL (URL アドレス) ): http://url.cn/EeOhAy

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