用php解析html/xml文件,PHP内置了几个类,但是要不就是目前处理能力过于简单,用户编码太多,要不就是对文档的要求很严格。刚好今天要用php抓取大量网页的特定内容,在sf.net 上找到了这个称为PHP Simple HTML DOM Parser 类。单个文件,目前36k。官方给出的特性和要求是:
- 相当简单的方式操作HTML
- 要求PHP 5 以上
- 支持无效的HTML
- 类似jQuery的选择器来查找元素
- 单行代码就可以从HTML页面抓取内容。
支持无效的HTML很重要,网络上能严格通过w3c验证的网站太少了,大部分网站的很多标签都非封闭的,而大部分DOM解析器都是以XML方式处理,而XML对标签的封闭就要求很严格了,因此大部分网页无法使用这种函数来处理。
一个强大的选择器来查询和定位要找的元素至关重要,jQuery无疑在这方面做的相当棒。而这个类就采用了jQuery类似的查询方式,官方网络上也给出大量的例子来说明这点。
可惜的是,目前还不支持xpath查询方式,如果xpath查找,那就更强悍了,希望早日能看到这个功能。
想进一步了解,可以看在线文档。