超好的HTML解析工具PHP Simple HTML DOM Parser

超好的HTML解析工具PHP Simple HTML DOM Parser 中文手册
  采用PHP5+开发的一个简单的PHP HTML DOM分析,支持invalid HTML并提供非常简单的方式来操作HTML元素。在HMTL页面上查找标签所使用的语法与jQuery(一个轻量级,实用的javascript框架)相似。从页面中抽取内容只需要一行代码
手册地址:http://www.kg-led.com/phpgrid/simplehtml/
====================================================
請參考 http://simplehtmldom.sourceforge.net/
php Simple HTML DOM Parser 強力解析html 工具

include(‘../simple_html_dom.php’);
// Create DOM from URL or file
$dom = file_get_dom(‘http://www.torrentz.com/movies’);
// Find all
foreach($dom->find(‘img’) as $element)
echo $element->src . “\n”;
foreach($dom->find(‘a’) as $element)
echo $element->href . ” “.$element->innertext.”\n”; //網址及結連名稱

運用curl主站目前已可抓文抓圖
$ch = curl_init (“http://static.php.net/www.php.net/images/php.gif”);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec ($ch);
curl_close ($ch);
$fp = fopen(“php.gif”,’w’);
fwrite($fp, $rawdata);
fclose($fp);

網址: http://sourceforge.net/projects/simplehtmldom/
因為使用PHP內建的DOM物件分析HTML實在太痛苦了,
我自己寫了一個放到Sourceforge上, 希望大家能提供一些開發的建議.
特色:
1. 只支援PHP5以上
2. 可以分析不嚴謹(invalid)的HTML.
3. 支援簡單的CSS Selector.
4. 簡單的DOM操作
5. 會維持HTML中的原始格式.
範例:

<?
// 示範如何讀取HTML元素
include(‘html_dom_parser.php’);

// 產生DOM物件
$dom = file_get_dom(‘http://www.google.com/’);

// 找出所有網頁連結
$result = $dom->find(‘a’);
foreach($result as $v) {echo $v->href . ‘<br>’;}

// 找出所有網頁圖片
$result = $dom->find(‘img’);
foreach($result as $v) {echo $v->src . ‘<br>’;}

// 找出所有網頁中所有id=gbar的div標籤
$result = $dom->find(‘div#gbar’);
foreach($result as $v) {echo $v->innertext . ‘<br>’;}

// 找出所有網頁中所有calss=gb1的span 標籤
$result = $dom->find(‘span.gb1’);
foreach($result as $v) {echo $v->outertext . ‘<br>’;}

// 找出所有網頁中所有align=center的’td標籤
$result = $dom->find(‘td[align=center]’);
foreach($result as $v) {echo $v->outertext . ‘<br>’;}
?>

<?
// 示範如何修改HTML元素
include(‘html_dom_parser.php’);

// 產生DOM物件
$dom = file_get_dom(‘http://www.google.com/’);

// 移除網頁中所有圖片
$ret = $dom->find(‘img’);
foreach($ret as $v) {$v->outertext = ”;}

// 修改網頁中所有input標籤
$ret = $dom->find(‘input’);
foreach($ret as $v) {$v->outertext = ‘[INPUT]’;}

// 顯示修改後的網頁
echo $dom->save();
?>

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

18 − = 14