之前為了解析 HTML 所找到的工具
這是 S.C. Chen 所製作的工具
作者文章:PHP Simple HTML DOM Parser 強力解析html工具
檔案下載:PHP Simple HTML DOM Parser
具有以下特點:
- 只支援PHP5以上
- 可以分析不嚴謹(invalid)的HTML.
- 支援簡單的 CSS Selector.
- 簡單的DOM操作
- 會維持HTML中的原始格式.
對於可以支援 CSS Selector 就夠方便了
幾本上函數操作跟 JavaScript 差不多
使用起來的確蠻方便的
不過在實際使用後發現對於不嚴謹 HTML 的解析會有意想不到的問題出現,由於元素的結束點判斷不正確而出現遞迴效應,造成大量使用記憶體空間,最好還是避免解析不嚴謹 HTML。
使用範例:
<?php // 示範如何讀取HTML元素 require_once("simple_html_dom.php"); // 產生DOM物件 $dom = file_get_dom('http://www.google.com/'); // 找出所有網頁連結 $result = $dom->find('a'); foreach($result as $v) { echo $v->href; } // 找出所有網頁圖片 $result = $dom->find('img'); foreach($result as $v) { echo $v->src; } // 找出所有網頁中所有id=gbar的div標籤 $result = $dom->find('div#gbar'); foreach($result as $v) { echo $v->innertext; } // 找出所有網頁中所有calss=gb1的span 標籤 $result = $dom->find('span.gb1'); foreach($result as $v) { echo $v->outertext; } // 找出所有網頁中所有align=center的'td標籤 $result = $dom->find('td[align=center]'); foreach($result as $v) { echo $v->outertext; }
<.div id=web>
回覆刪除<.span class=c1>第一項
<.span class=c2>第二項
<.span class=c1>第三項
不好意思打擾一下,找了好多資料都找不到
請問有辦法取得class=c2的資料嗎?
就是使用 CSS 的語法就可以抓到了啊!
回覆刪除#web span.c2
感謝^^,我還是在試試好了
回覆刪除看到您分享的這篇文章好感動(我找了好久)
orz
基本上這個工具蠻強大的
回覆刪除只要不是用 table 排版的網頁
都可以透過 CSS 選擇器的語法很容易的抓到想要的內容
不管是想要取得 src,href...等的屬性也都很容易