|
我做了一个PHP的采集插件,插件源码如下:<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
/*
*外部编程接口处理标签内容示范文件
*该文件内自动系统的三个参数$LabelArray $LabelCookie,$LabelUrl
*对任意采集的标签都适用请对标签内容处理后直接将该数组serialize($LabelArray)输出,
*采集器内部即可接收到该标签的内容,对比以前的接口规则,新规则可以实现标签之间的数据调用和处理
*参数说明:
*$LabelArray - 标签名及标签内容集合 结构如:Array('栏目id' => 2,'出处'=> '新浪微博','内容'=>'<center><b>暴笑短信') ##
*$LabelCookie - 对应采集中用到的Cookie值
*$LabelUrl - 当前采集的页面的Url地址
* 特别注意:如果是处理列表页,默认页,多页时会有以下两个标签
$LabelArray['Html'] 网页的源代码,没有经过采集器处理的,直接下载后的数据.修改这里的数据,请将新值赋予$LabelArray['Html']
$LabelArray['PageType'] 值可能为 List, Pages, Content 分别代表处理列表页,多页,默认页
*以上语句建议不更改,以下为用户操作区域 该区域只限对数组值进行操作,不得有打印输出产生,不得直接增加或删除相应标签名
*/
if($LabelArray['PageType']=='Content')
{
preg_match_all("/javascript:ContentPageHref\(\'\',\d{5},\d{5}-\d{5},/",$LabelArray['Html'], $arr);
$str=count($arr[0]);
$filename=rtrim($LabelUrl,'.html');
$pagestr='<locoypage>';
// if($str==0){
// $pagestr.="<a href='$LabelUrl'>$str</a>";
// }else
// {
for ($i=1;$i<=$str;$i++)
{
if($i==1)
{
$pagestr.="<a href='$LabelUrl'>$i</a>";
}else{
$page=$filename.'_'.$i.'.html';
$pagestr.="<a href='$page'>$i</a>";
}
}
// }
$pagestr.='</locoypage>';
$LabelArray['Html'].=$pagestr;
}
//#############以上为用户操作区域#############################################################################################################################
//#############以下语句必须保留,建议不更改###################################################################################################################
//ob_clean();
echo serialize($LabelArray);
?>
采集的页面是:http://www.china-heating.com/news/2014/21730.html
在PHP插件的测试页里测试 把地址填上去,怎么弄都只能采集内容页的一个分页,把该页面的源码复制进去,就能采集出来所有的分页地址采集出来,问题出现,真正开始采集时,又采集不到分页的地址,也采集不到分页的内容!真的不知道怎么回事,请各位大侠帮忙! |
|