用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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
第十一节--重载
Nov 16 PHP
php+mysql事务rollback&amp;commit示例
Feb 08 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
Feb 03 PHP
php对mongodb的扩展(初出茅庐)
Nov 11 PHP
php url路由入门实例
Apr 23 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
destoon常用的安全设置概述
Jun 21 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
PHP配置ZendOpcache插件加速
Feb 14 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
用cssText批量修改样式
2009/08/29 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
基于JS实现Android,iOS一个手势动画效果
2016/04/27 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
Python 抓取动态网页内容方案详解
2014/12/25 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
python爬虫请求头的使用
2020/12/01 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
岗位职责的含义
2013/11/17 职场文书
高中校园广播稿
2014/01/11 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
函授本科自我鉴定
2014/02/04 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
施工安全承诺书
2014/05/22 职场文书
心理学培训心得体会
2016/01/22 职场文书