Web ページの解析とクローラーの作成に対する私の熱意はまったく衰えていません。今日、オープンソースの simple_html_dom.php 解析フレームワークを使用してクローラーを作成しました。
<?php /* *.Pho spider v1.0 *.Written by Radish.ghost 2015.1.20 */ //error_reporting(1); //close error report //curl model //I will realize it in later versions include_once("simple_html_dom.php"); $html=file_get_html('http://www.baidu.com');//The url which you want dig $tmp=array();//Save the url in the first dig foreach($html->find('a') as $e) { $f=$e->href; //if($f[10]==':')continue; if($f[0]=='/')$f='http://www.baidu.com'.$f;//Completion the url if($f[4]=='s')continue;//If the url is "https://" continue (the simple_html_dom might can't prase the https:// url) if(stripos($f,"baidu")==FALSE)continue;//If the url not in this website continue echo $f . '<br>'; $tmp[$cun++]=$f; //Save the urls into array } foreach($tmp as $r) //Dig the urls in $tmp[] { $html2=file_get_html($r); //Redo the step foreach($html2->find('a') as $a) { $u=$a->href; if($u[0]=='/')$u='http://www.baidu.com'.$u; if($u[4]=='s')continue; if(stripos($u,"baidu")==FALSE)continue; echo $u.'<br>'; } $html2=null; } ?>
//最終的には常に 致命的なエラー が発生します。 D:xampphtdocshtmlindex.phpの非オブジェクトに対するメンバー関数find() LINE21の警告。先輩方とやり取りした後、細かい間違いをたくさん修正しましたが、まだ解決していませんので、誰かアドバイスをいただければ幸いです
----------。 ---------------------- -区切り線--------------------------
simple_html_dom ダウンロード:
https://github.com/Ph0enixxx/simple_html_dom
= =自宅のコンピューターでは git4win を使用できません
上記は、simple_html_dom をベースにした PHP 自作クローラー v1.0 を、関連コンテンツも含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。