用php解析html的实现代码


Posted in PHP onAugust 08, 2011

最近想用php写一个爬虫,就需要解析html,在sourceforge上找到一个项目叫做PHP Simple HTML DOM Parser,它可以以类似jQuery的方式通过css选择器来返回指定的DOM元素,功能十分强大。
首先要在程序的开始引入simple_html_dom.php这个文件

include_once('simple_html_dom.php');

PHP Simple HTML DOM Parser提供了3种方式来创建DOM对象
// Create a DOM object from a string 
$html = str_get_html('<html><body>Hello!</body></html>'); 
// Create a DOM object from a URL 
$html = file_get_html('http://www.google.com/'); 
// Create a DOM object from a HTML file 
$html = file_get_html('test.htm');

得到DOM对象后就可以进行各种操作了
// Find all anchors, returns a array of element objects 
$ret = $html->find('a'); 
// Find (N)th anchor, returns element object or null if not found (zero based) 
$ret = $html->find('a', 0); 
// Find lastest anchor, returns element object or null if not found (zero based) 
$ret = $html->find('a', -1); 
// Find all <div> with the id attribute 
$ret = $html->find('div[id]'); 
// Find all <div> which attribute id=foo 
$ret = $html->find('div[id=foo]');

这里可以使用各种css选择器,就像在jQuery中进行DOM操作一样,非常方便。此外,还有两个特殊的属性可以得到文本和注释的内容
// Find all text blocks 
$es = $html->find('text'); 
// Find all comment (<!--...-->) blocks 
$es = $html->find('comment');

当然,还是类似于jQuery,PHP Simple HTML DOM Parser也支持链式操作,以及各种访问DOM元素的简单方法
// Example 
echo $html->find("#div1", 0)->children(1)->children(1)->children(2)->id; 
// or 
echo $html->getElementById("div1")->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id');
PHP 相关文章推荐
PHP中的加密功能
Oct 09 PHP
NOT NULL 和NULL
Jan 15 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
PHP文件缓存类实现代码
Oct 26 PHP
Yii2实现多域名跨域同步登录退出
Feb 04 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
使用PHPWord生成word文档的方法详解
Jun 06 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 PHP
php中设置多级目录session的问题
Aug 08 #PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 #PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 #PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 #PHP
php Smarty初体验二 获取配置信息
Aug 08 #PHP
php中Smarty模板初体验
Aug 08 #PHP
PHP 防注入函数(格式化数据)
Aug 08 #PHP
You might like
图书管理程序(二)
2006/10/09 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
Javascript调用C#代码
2011/01/17 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
简单谈谈python的反射机制
2016/06/28 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
Django中url的反向查询的方法
2018/03/14 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
Python中print和return的作用及区别解析
2019/05/05 Python
pytorch梯度剪裁方式
2020/02/04 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
python中的yield from语法快速学习
2020/11/06 Python
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
办理信用卡工作证明
2014/01/11 职场文书
学习委员自我鉴定
2014/01/13 职场文书
市场营销工作计划书
2014/05/06 职场文书
电台编导求职信
2014/05/06 职场文书
团干部培训方案
2014/06/03 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏