用于网站采集,使用简单:支持分页采集、图片下载、过滤等,说明不多,仅限于php的二次开发,之前的代码片段先删除,请直接下载附件,如需要采集服务可联系我 php ?php/** * 抓取器 * @author administrator * @example $config = array( * 'host'='服务器地
用于网站采集,使用简单:支持分页采集、图片下载、过滤等,说明不多,仅限于php的二次开发,之前的代码片段先删除,请直接下载附件,如需要采集服务可联系我
php '服务器地址', * 'list'=>array( * 'items'=>array(正则表达式组), * 'page_url'=>'分页地址正则表达式,$1为链接,$2显示的数字', * 'page_size'=>'分页大小', * 'page_url_rule'=>'获取页码数的正则,$1必为数字', * 'page_limit'=>数字,要扫描的最大页数,如果不填,则只扫描可视范的页码数 * 'this_detail_callback'=>'对详情页的数据执行回调函数', * 'list_detail_url'=>'指定list中的items中名称为详情页的地址' * ) * * details=>array( * 详情页的所有规则,见items结构说明 * ), * * time_limit=>array('rule'=>对应的组名,start=>超始时间,end=>结束时间), * num_limit=>获取多少条数据 * ) * * items结构解析: array( * '属性名称'=>array('rule'=>正则表达式,多种情况时为数组,type=>' 1-文本,2-远程请求,3->'子规则列表items',4=>'子config配置', * replace=>替换结果,以回调函数形式或采用数组array(from=>'正则表达式','to'=>替换字符),'multi'=>是否采集多条数据), * ) */set_time_limit(0);define('in_web',true);date_default_timezone_set('prc');include('collector/init.php');$htmlfilter = '/]*\/>|((onclick|onmouseover|onmouseout|onblur)=\[^\]+\)||]*>||]*>(.+?)|]*>(.+?)|]*>(.+?)|]*>(.*?)|]*>(.+?)|]*>|/is';$config = array( 'host'=>'http://news.wto168.net/zixun/', 'list'=>array( 'items'=>array( 'time'=>array('rule'=>'/>.*([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}\s*[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})/i','multi'=>true), 'link'=>array('rule'=>'//i','multi'=>true, ), 'title'=>array('rule'=>'/([^>]+)/i','multi'=>true,'replace'=>array('from'=>'/【.+】/','to'=>'')), ), 'list_detail_url'=>'link', 'page_url'=>'/]*>\d+/i', 'page_url_rule'=>'/_(\d+)\.html/', 'page_limit'=>10, ), 'details'=>array( 'content'=>array('rule'=>'/(.+?)/is', 'keep_html'=>true,'replace'=>array('from'=>$htmlfilter,'to'=>'')), ), 'list_url'=>'/^http:\/\/news\.wto168\.net\/zixun\/list/', 'detail_url'=>'/^http:\/\/news\.wto168\.net\/zixun\/.*\.html/i', 'time_limit'=>array('rule'=>'time','start'=>date('y-m-d') ),);$c = new collector($config);$url = 'http://news.wto168.net/zixun/list_56_1.html';$res = $c->collect($url);print_r($res);?>