火车采集器使用PHP插件配置循环标签的方法

*参数说明:
*LabelArray - 标签名及标签内容集合 结构如:Array('栏目id' => 2,'出处'=> '新浪微博','内容'=>'<center><b>暴笑短信') ## *LabelUrl - 当前采集的页面的Url地址
*$LabelCookie - 当前采集页面,服务器返回的Cookie信息。

  • 特别注意:如果是处理列表页,默认页,多页时会有以下两个标签
    LabelArray['Html'] 网页的源代码,没有经过采集器处理的,直接下载后的数据.修改这里的数据,请将新值赋予LabelArray['Html']
    $LabelArray['PageType'] 值可能为 List, Content ,Pages, Save 分别代表处理列表页,默认页,多页,保存时
    • List 列表页
    • Content 默认页
    • Pages 多页
    • Save 保存时

根据以上参数可以推断,我们需要在$LabelArray['Html'] 中对原标签进行处理

例如(替换):
插件中:
if(LabelArray['PageType']=="List"){} else if(LabelArray['PageType']=="Content")
{
LabelArray['Html'] = str_replace('<title>','<title>新字符串</title><title>新字符串</title><title>新字符串</title>',LabelArray['Html']);
}
else if(LabelArray['PageType']=="Save"){} 在采集器中: ![image.png](https://upload-images.jianshu.io/upload_images/15191413-ddec8fa6034ec42e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 可见采集器中有多条记录 ![image.png](https://upload-images.jianshu.io/upload_images/15191413-8ce6cee0ae657eb1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 例如2(新增标签): foreach (JsonData[initDataObj][goods][skus] as sku) {specs = sku[specs];//属性normalPrice = sku[normalPrice];//单价groupPrice = sku[groupPrice];//拼团价skuId = sku[skuId];//skuIdshuxing = "";
foreach (specs asspec) {
spe = '<span>属性:'.spec[spec_key].'</span><span>:'.spec[spec_value].'</span>';shuxing = shuxing.spe;
}
tag = '<div class="sku">'.shuxing.'</span><span>单价:'.sku[normalPrice].'</span><span>拼团价:'.sku[groupPrice].'</span><span>skuId:'.sku[skuId].'</span><div>';LabelArray['Html']='<test>'.tag.'</test>'.LabelArray['Html'];
}

遇到的坑:

测试时在else if(LabelArray['PageType']=="Content") 中处理正常使用 实际运行则需要在 if(LabelArray['PageType']=="List")中处理

一个插件文件需要在对应的配置中选择才会执行,例如插件有请求处理,结果处理,但是火车头配置中至选了结果处理插件,则请求的部分不会执行

                                 交流采集技术可加微信:flutter_code  联系我
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章