simple_html_dom 详解

下载地址 https://github.com/samacs/simple_html_dom

主要介绍了php使用simple_html_dom解析HTML的方法,实例分析了php针对dom节点操作的相关技巧

说一下使用simple_html_dom这个开源类来解析HTML代码:

<?php
/**
 * note:
 * User: gao
 * Date: 2017/2/16
 */
include 'simplehtmldom/simple_html_dom.PHP';
$html = file_get_html('http://hz.ganji.com/fang1/a1/');

$title = $price = array();
$data = array();
foreach($html->find('.f-list-item') as $v){
    $t['img'] = $v->find('.js-img',0)->src;
    $t['price'] = $v->find('.price .num',0)->plaintext;
    $t['info'] = $v->find('.size',0)->plaintext;
    $t['area'] = $v->find('.area',0)->plaintext;
    $t['source'] = $v->find('.source',0)->plaintext;
    $t = str_replace(' ','',$t);
    $data[] = $t;
}
file_put_contents(__DIR__.date('Ymd').'.php','<?php return '.var_export($data,true));
foreach($html->find('img') as $element) {
    echo $element->src . '<br>';
} //找到所有的图片
$ret = $html->find('a'); //得到这个html里面所有的a节点,返回的是object的array数组
$ret = $html->find('a', 0); //得到这个html里面所有的a节点,返回的是object,可以直接调用属性 html->find('a', 0)->href;就可以得到所有a的href的值
$ret = $html->find('div[id]');//找到所有有id的div
$ret = $html->find('div[id=foo]'); //找到所有div下面id为foo的
$html = str_get_html("<div>foo <b>bar</b></div>");
$e = $html->find("div", 0);

echo $e->tag; // Returns: " div"
echo $e->outertext; // Returns: " <div>foo <b>bar</b></div>"
echo $e->innertext; // Returns: " foo <b>bar</b>"
echo $e->plaintext; // Returns: " foo bar"


评论 抢沙发

表情