ホームページ  >  記事  >  バックエンド開発  >  PHPクローリングページのいくつかの方法の詳細な説明

PHPクローリングページのいくつかの方法の詳細な説明

怪我咯
怪我咯オリジナル
2017-07-09 09:28:191523ブラウズ

この記事は、PHP でページをクロールするいくつかの方法の詳細な分析と紹介です。必要な友人はそれを参照してください

天気予報 や RSS 購読プログラムを実行する場合、多くの場合、ローカル以外のファイルをクロールする必要があります。通常、PHP はブラウザ アクセスをシミュレートするために使用され、HTTP リクエストを通じて URL アドレスにアクセスし、HTML ソース コードや XML データを直接抽出する必要があることがよくあります。次に、それを次のようにフォーマットします。よりフレンドリーなアプローチが現れます。
以下は、PHP クローリングページのいくつかの方法と原則を簡単に紹介します:
1. PHP クローリングページの主なメソッド:
1. file() 関数
2. file_get_contents() 関数 3. fopen()->fread()->fclose() モード
4.curl メソッド
5. fsockopen() 関数ソケット モード
6. プラグインを使用します (http://sourceforge.net/ など)。 2. PHP が HTML または XML コードを解析する主な方法:

1. file() 関数

コードは次のとおりです:

<?php 
$url=&#39;http://t.qq.com&#39;; 
$lines_array=file($url); 
$lines_string=implode(&#39;&#39;,$lines_array); 
echo htmlspecialchars($lines_string);

2.関数

file_get_contents と fopen を使用して、必要なスペースallow_url_fopen を開きます。方法: php.ini を編集し、allow_url_fopen = On に設定します。allow_url_fopen がオフの場合、fopen も file_get_contents も

リモート ファイル

を開くことができません。
コードは次のとおりです:

<?php 
$url=&#39;http://t.qq.com&#39;; 
$lines_string=file_get_contents($url); 
echo htmlspecialchars($lines_string);
3. fopen()->fread()->fclose() モード

コードは次のとおりです:

<?php 
$url=&#39;http://t.qq.com&#39;; 
$handle=fopen($url,"rb"); 
$lines_string=""; 
do{ 
    $data=fread($handle,1024);
     if(strlen($data)==0) {
        break;
    } 
    $lines_string.=$data; 
}while(true); 
fclose($handle); 
echo htmlspecialchars($lines_string);


4. Curl メソッド

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

コードは次のとおりです:

<?php 
$url=&#39;http://t.qq.com&#39;; 
$ch=curl_init(); 
$timeout=5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$lines_string=curl_exec($ch); 
curl_close($ch); 
echo htmlspecialchars($lines_string);

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

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

phpinfo

を通じて、たとえば、ローカルの php ソケットで http が有効になっていないため、udp を使用してのみテストできます。
コードは次のとおりです:

<?php                                                                                                                                                
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) { 
    echo "ERROR: $errno - $errstr<br />\n"
} else { 
    fwrite($fp, "\n")
    echo fread($fp, 26)
    fclose($fp)
}

6. プラグイン

スヌーピーのプラグインはオンラインで見つかります。

以上がPHPクローリングページのいくつかの方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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