2008-11-04 15 views
31

是否有一個PHP類/庫,允許我用CSS選擇器查詢XHTML文檔?如果我能以某種方式使用CSS選擇器(jQuery已經寵壞了我!),我需要爲一些非常容易訪問的數據抓取一些頁面。有任何想法嗎?PHP CSS選擇庫?

回答

40

進一步谷歌搜索後(初步結果不是非常有幫助),似乎確實是有Zend框架庫本,連同其他一些:

+12

+1 phpQuery絕對精彩。 – Sampson 2009-07-17 18:36:00

+2

我試過了你列出的3個項目。最後,我的選擇是簡單的HTML DOM,純粹是因爲它們很簡單,很好地解釋了它的用法。 phpQuery完成了這項工作,但我覺得好像缺少文檔和支持。 Zend成功地抓住了我的查詢並計算了它,但是在獲取值時,它失敗了。同樣,我的建議是簡單的HTML DOM。 – NessDan 2010-12-10 02:50:47

+1

雖然簡單的html dom非常流行,但a)它沒有很好的全選選項語法的覆蓋率b)它不會*顯示*處於活動的開發中。 – 2011-12-07 11:42:41

10

XPath是訪問XML(和XHTML)的節點相當標準的方式,並提供了比CSS更精確。

1

對於文檔解析我使用DOM。這可以很容易地解決你的問題,如果你知道的標籤名稱(本例中「格」):

$doc = new DOMDocument(); 
$doc->loadHTML($html); 

$elements = $doc->getElementsByTagName("div"); 
foreach ($elements as $e){ 
    if ($e->getAttribute("class")!="someclass") continue; 

    //its a div.classname 
} 

不知道DOM可以讓你得到一個文檔中的所有元素一次......你可能要做一個樹遍歷。

5

對於jQuery用戶可能是最有趣的jQuery 口到PHP,這是phpQuery。幾乎圖書館的所有部分都被移植了。此外,它還包含WebBrowser插件,可用於Web站點的整個站點的路徑/進程(例如登錄後訪問數據)。它只是模擬服務器上的Web瀏覽器(事件和cookie)。最新版本對XML的實驗性支持名稱空間和CSS3 「|」選擇器