数据采集利器-PHP用DOM方式处理HTML之《Simple HTML DOM》

最近经常需要采集一些网上的数据,发现一个PHP处理HTML的利器 simple html dom,官方网址是http://simplehtmldom.sourceforge.net/

看了一下文档,使用非常方便,关键是能够用CSS选择器来访问DOM树,和jquery相似,实在是难得的利器

以下是一个测试代码,用于抓取大众点评网上的咖啡分类的所有店铺:

程序:

 

<?php
require_once("simple_html_dom.php");
ini_set('memory_limit','1000M');
ini_set("max_execution_time",6000000);

for($i=1;$i<=21;$i++){
    $html = file_get_html("http://www.dianping.com/search/category/17/30/g1498p$i/g30g1498");
    $as = $html->find('.shopname a');
    $sum = 0;
    foreach($as as $a)    {
        if($a->plaintext != "分店"){
            $a->href = "http://www.dianping.com".$a->href;
            echo $a->outertext."------".$a->href."-------<br>";
            $sum++;
        }
    }
    echo "<br><br>第 {$i} 页结束 ,数目:{$sum}<hr>";
}
?>

 

数据采集结果,共采集了21页的数据

另外,还有一个更强大的PHP处理HTML的利器,号称和jquery更相似,并且比simplehtmldom强大,但是难学,叫做 phpquery,地址是:http://code.google.com/p/phpquery/

相关推荐

2 thoughts on “数据采集利器-PHP用DOM方式处理HTML之《Simple HTML DOM》”

  1. 不错。更常用的xml解析方法是xpath(具有语法通用性,各种语言基本都提供了xpath相应的库)。
    PHP SimpleXML 函数中就提供了xpath。

    回复

回复 redice 取消回复