首先你可以设置时间
set_time_limit(0);采集可以按分类进行的,先采一级分类,再根据一级分类,进一步采集其它分类,就是多几个循环。

解决方案 »

  1.   

    1、采用伪进程方式工作
    /**
     * 函数 tenor
     * 功能 启动一个url,但不等待返回
     * 参数 $page,待执行的页面程序
     * 返回 无
     **/
    if(! function_exists('tenor')):
    function tenor($page) {
            $host = $_SERVER["HTTP_HOST"];
            $fp = fsockopen($host, 80, $errno, $errmsg);
            if(!$fp) {
                    echo "$errstr ($errno)<br>\n";
            } else {
                    fputs($fp,"GET /$page HTTP/1.0\nHost: $host\n\n");
    /*
                    while(!feof($fp)) {
                            echo fgets($fp,128);
                    }
    */
                    fclose($fp);
            }
    }
    endif;2、
    采集程序只负责将采集到的页面存入数据库
    分析程序负责解析采集到的页面,同样将结果存入数据库
    监视程序负责启动采集程序和解析程序,并与用户交互