新版插件使用教程(内测版)
火车采集器2010版增加了插件的使用.用户可以在多个地方使用插件来进行扩展开发.目前插件的使用有如下几个地方插件的执行是这样的,比如默认页的采集,采集器先获取到网页源码,然后将网页源码交给插件,插件处理完成后,再将数据交给采集器,采集器这时再对插件处理过的数据进行分析处理.提取标签,下载图片等.
我以一个默认页的示例说明一下如何使用PHP插件.我们以采http://post.weiqi.tom.com/D5000FEF139.html的分页为例.
我们先看一下,这个分页里是用脚本控制生成的.采集器无法接获取的.其中,生成分页的代码有这一段.
//去到第几页
function goto_page(pageno){
pageno = parseInt(pageno);
if((pageno < 1) || (pageno > 9)){
//加入 forward_link;
if(''.blank()){
return false;
}else{
window.location.href = '';
return false;
}
}
window.location.href = '/D5000FEF139_'+pageno+'.html';
return false;
}
这时有一个数字9,代码有多少个分页.而分页的格式为 '/D5000FEF139_'+pageno+'.html';
这时,我们要用插件来生成分页代码,采集器将识别这个代码并获取到分页.怎么来生成分页呢?
很简单,插件首先是获取了当前默认页的地址,如http://post.weiqi.tom.com/D5000FEF139.html ,而分页的规则是在.html前加_2,_3等.我们就可以直接用循环和替换生成分页代码了.我写的代码如下.
<?php
if($LabelArray['Html']!=""&&$LabelArray['PageType']=='Content')
{
$html=$LabelArray['Html'];
preg_match("/\(pageno > (\d+)\)/i",$html, $matches);
$pagenum=$matches;
if($pagenum>2)
{
$return="<locoypages>";
for($i=2;$i<=$pagenum;$i++)
{
$url=str_replace(".html",'_'.$i.'.html',$LabelUrl);
$return.="<a href='".$url."'></a>";
}
$return.='</locoypages>';
$LabelArray['Html'].=$return;
}
}
echo serialize($LabelArray);
?>
首先,需要注意的是,保存网页源码的是 $LabelArray['Html'] .保存网页类型的是$LabelArray['PageType'].这几个参数在采网址,采内容,采多页处是一样的.我们使用插件测试管理器.得到如下结果.
看采集器里的设置
这样,我们就通过插件改变程序的源代码,从而实现了采集脚本多页的功能.
注意,使用测试版的用户,在当前时间下载前的,请再下载最新版进行测试. 看了一下,有点明白,又有点不明白,最好能多加点注释{:4_180:} 不错有这个标签可以做更多的事 能下载论坛附件本地吗 {:4_180:}{:4_180:} ali84ls不错 我喜欢 回复 1# rq204
高人啊~
膜拜。。。。。 处理过程多了会不会影响采集的速度呀? 很不错!!!!不过是不是 免费版还是继续不支持 插件使用呢ali76ls 能有个 视频教程就更好了
页:
[1]
2