對於php抓取網頁的內容,可能比較難的就是dom解析這一部分了,這兒的話有幾種技術推薦給大家,具體使用哪種就看自己的喜歡了
1.php內建的xpath解析技術
xpath的話具體可以百度一下他的用法,我只舉幾個簡單的例子,廢話不多說,代碼如下
error_reporting(0);
$url='http://www.baidu.com';//此處寫抓取的網頁的網址,我隨便寫的
$html=file_get_contents($url);
$dom=new DOMDocument;
$dom->loadHTML($html);
$xml=simplexml_import_dom($dom);
$nav=$xml->xpath('//p[@id="nv"]');//這兒簡單解釋一下,就是調用simplexml的xpath方法,傳入符合xpath文法的字串就行了,我這兒的意思是,擷取所有id屬性值為nv的p標籤元素
print_r($nav);
2.phpquery,
phpquery是基於jQuery選取器的dom解析器,如果經常用jQuery的話會很喜歡這個工具的,下面說說他的用法
include 'phpQuery.php';
phpQuery::newDocumentFile('http://job.blueidea.com');
$companies = pq('#hotcoms .coms')->find('div');
foreach($companies as $company)
{
echo pq($company)->find('h3 a')->text()."
";
}
簡單解釋一下 :
pq()就像jQuery裡的$()
基本上jQuery的選取器都可以用在phpQuery上,只要把’.'變成’->’
phpQuery提供了好幾種載入檔案的方法,有的使用字串,有的使用檔案(包括url),選 擇的時候要注意 3.simplehtmldom
官方手冊:http://www.ecartchina.com/php-simple-html-dom/manual.htm
自己看吧,一會就看懂了,我花了半個小時不到的時候就熟練的運用了
對了,這兒還有一個php的抓取系統,phpcrawl,如果想瞭解php搜尋引擎方面的一些知識,可以看看他的源碼:
源碼下載地址
http://sourceforge.net/projects/phpcrawl/files/PHPCrawl/