|
本帖最后由 lovewqww 于 2010-1-20 01:45 编辑
如果你想抓取别人网页上面的内容,但是你又不会正则,那么只要你有一点点的CSS功底,那么就可以通过我发布的类很方便的抓取网页中的任何一块内容。
simplehtmldom.rar
(39.99 KB, 下载次数: 49)
下面是一个整合到CI中的源码:
在使用下面的例子以前请先将“simple_html_dom.php”放到system/application/libraries文件夹中
PHP复制代码 <?php
class htmldom extends Controller {
function htmldom () {
parent ::Controller();
}
function example () {
$this->load->library('simple_html_dom', 'htmlDom');
$dom = file_get_dom ('http://www.995114.com');
/**
* 抓取页面中的公告
*/
$element = $dom->getElementById('#gonggao_content li', 0); //如果没有第二个参数,那么返回的是一个elements的数组
$content = $element->innertext; //innertext类似于DHTML中的innerHTML
echo '<h3>网站公告</h3>';
echo '<div style="border:1px solid red">'.$content.'</div>';
/**
* 抓取页面中的导航
*/
$elements = $dom->find('#answer_nav li a');
$navigations_text = array(); //保存导航中的文本
$navigations_href = array(); //保存每个导航的链接地址
foreach ($elements as $element) {
$navigations_text[] = $element->plaintext; //plaintext类似于DHTML中的innertext
$navigations_href[] = $element->getAttribute('href');
}
echo '<h3>导航的文本</h3>';
echo '<div style="border:1px solid red; padding:16px 0 20px 30px">'.join(' ', $navigations_text).'</div>';
echo '<h3>导航的链接</h3>';
echo '<div style="border:1px solid red; padding:16px 0 20px30px">'.join('<br />', $navigations_href).'</div>';
}
}
?> 复制代码
注:simple_html_dom.php中的类不是本人原创,我也是在网上面找到的! |
评分
-
查看全部评分
|