用php解析html的实现代码
2015-01-24信息快讯网
用php解析html的实现代码,一般做采集的朋友需要用得到。
最近想用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的相似度计算函数:levenshtein的使用介绍
关于PHP递归算法和应用方法介绍
PHP 读取Postgresql中的数组
php简单开启gzip压缩方法(zlib.output_compression)
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
php中将html中的br换行符转换为文本输入中的换行符
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
php添加文章时生成静态HTML文章的实现代码
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
php中将字符串转为HTML的实体引用的一个类
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
thinkPHP的Html模板标签使用方法
兼容firefox,chrome的网页灰度效果
php中设置多级目录session的问题
ThinkPHP 防止表单重复提交的方法
ThinkPHP与PHPExcel冲突解决方法
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
php Smarty初体验二 获取配置信息
判断Keep-Alive模式的HTTP请求的结束的实现代码
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
php设计模式 FlyWeight (享元模式)
php错误提示failed to open stream: HTTP request failed!的完美解决方法
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
用PHP的超级变量$_GET获取HTML表单(Form) 数据
深入理解PHP原理之错误抑制与内嵌HTML分析
smarty中先strip_tags过滤html标签后truncate截取文章运用
php正则过滤html标签、空格、换行符的代码(附说明)