由于某些原因采集会经常遇到 TypeError:Cannot read property 'type' of undefined 错误。
大搜给的结果是“ 类型错误:无法读取未定义的属性“type ”显然是错误的,type不要轻易修改,在修改之前请提前做好备份,以免无法挽回,
导致这种错误的原因有很多,首先要确认代码的正确性,可以参考以下代码,逐步排渣,保证没有错误。
{
title: '重庆',
source: '正在采集',
name: 'cqssc',
enable: true,
timer: 'cqssc',
option: {
host: "api.baidu.com",
timeout: 50000,
path: '/xml.php?type=chongqing',
headers: {
"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) "
}
},
parse: function(str) {
try {
str = str.substr(0, 200);
var reg = /<row expect="([\d\-]+?)" opencode="([\d\,]+?)" opentime="([\d\:\- ]+?)"/;
var m;
if (m = str.match(reg)) {
return {
type: 1,
time: m[3],
number: m[1],
data: m[2]
};
}
} catch (err) {
throw ('解析数据错误');
}
}
},
以上参数解释:
host:采集源地址的 域名或者ip
timeout:设置采集超时时间 50000就是50秒
path:就是采集源的具体路径了。
var reg 后面就抓取 XML格式的规则
type:就是菜种编号。
time: 调取的xml里面的时间
number:调取的xml里面的 期数
data:调取的xml里面的 号码。