ホームページ >バックエンド開発 >PHPチュートリアル >CURLデータ収集による通常処理関数get_matchesの使い方_PHPチュートリアル

CURLデータ収集による通常処理関数get_matchesの使い方_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:11:34912ブラウズ

最初の 2 つのブログ投稿に基づく:

curlデータ収集に基づくシングルページコレクション関数get_htmlの使用法

curlデータ収集に基づくシングルページ並列収集関数get_htmlsの使用法

必要な HTML ファイルを取得しました。次に、取得したファイルを処理して、必要な収集データを取得する必要があります。

HTML ドキュメントにはペアになっていないタグが多く、厳密ではないため、HTML ドキュメントの解析には XML のような解析クラスはありません。このとき、Simplehtmldom は HTML ドキュメントを操作する JQuery に似た解析クラスです。必要なデータを取得するのは非常に便利ですが、残念ながら遅いです。これは、ここでの説明の焦点では​​ありません。私は主に、収集する必要がある情報を迅速に取得できるように、収集する必要があるデータを照合するために正規表現を使用します。

get_html は返されたデータを判断できますが、get_htmls は判断できないことを考慮して、デバッグと呼び出しを容易にするために次の 2 つの関数が作成されています:

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

function get_matches($pattern ,$html ,$err_msg,$multi=false,$flags=0,$offset=0){
if(!$multi){
if(!preg_match($pattern,$html,$matches,$flags,$ offset)) {O echo $ERR_MSG. "! エラー メッセージ:" .get_preg_msg (). "N" を返します。 AGS, $ offset)){
echo $err_msg."! エラー メッセージ: ".get_preg_err_msg() ."n"; preg_err_msg(){
$error_code = preg_last_error (); $err_msg = 'PREG_INTERNAL_ERROR';
ブレーク; ';
UTF8_ERROR:
$ err_msg = 'PREG_BAD_UTF8_ERROR';
ブレイク D_UTF8_OFFSET_ERROR';
ブレイク; ; T デフォルト: '不明なエラー!' を返します
$ err_msg = 'http://www.baidu.com';
$html = get_html($url); $matches = get_matches('!!',$html ,'リンクが見つかりません',true);
if($matches){
var_dump($matches);
}


または次のように呼び出します:



コードをコピーします

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

$urls = array('http://www.baidu.com','http://www.hao123.com');
$htmls = get_htmls($urls);
foreach($htmls as $html ){
$matches = get_matches('!!',$html,'リンクが見つかりません',true);
if($matches){
var_dump($ matchs);
}
}

を実行することで、単一ページのコレクションであっても、複数ページのコレクションであっても、最終的には 1 ページしか処理できません。 true または false で正しいデータを取得します。正規表現を使用するときに通常のバックトレースを超える問題が発生したため、通常の情報を求める get_preg_err_msg が追加されました。

データを収集するとき、リスト ページが収集されることが多く、リスト ページから取得したコンテンツ ページのリンクに基づいてコンテンツ ページが収集されるため、またはそれ以上のレベルで、ネストされたループが多くなり、コードが不十分に感じられるでしょう。それでは、コレクション リスト ページのコードをコレクション コンテンツ ページのコードから分離したり、より多くのレベルのコレクション コードを分離したり、ループを簡素化したりすることはできるでしょうか?

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326889.html技術記事前の 2 つのブログ投稿によると:curl データ コレクションに基づく単一ページ コレクション関数 get_html の使用curl データ コレクションに基づく単一ページ パラレル コレクション関数 get_htmls の使用は、すでに利用可能です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。