簡述php關於網頁元素抓取方面的技術

來源:互聯網
上載者:User
對於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/

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.