用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用户指南-cookies部分
Oct 09 PHP
php巧获服务器端信息
Dec 06 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 PHP
php实现无限级分类
Dec 24 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
详解PHP设计模式之依赖注入模式
May 25 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
解析php中获取url与物理路径的总结
2013/06/21 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python时间和字符串转换操作实例分析
2019/03/16 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
校车安全责任书
2014/08/25 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
数据库连接池
2021/04/06 MySQL
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python