phpspider
phpspider copied to clipboard
required用法有问题
定义该field的值是否必须, 默认false 赋值为true的话, 如果该field没有抽取到内容, 该field对应的整条数据都将被丢弃
我在fields中定义了required=true,获取不到内容时并不会丢弃这条数据 日志里可以看到,值给的是false,数据库里会有空数据入库,
2018-06-21 10:01:23 [debug] Find content page: https://www.qiushibaike.com/article/116426475
2018-06-21 10:01:23 [info] Result[9]: {"author":false,"content":false}
2018-06-21 10:01:23 [debug] Success process page https://www.qiushibaike.com/article/120583413 in 0.143 s
暂时解决方法是
$spider->on_extract_page = function($page, $data)
{
$data['author'] = trim($data['author']);
$data['content'] = trim($data['content']);
if( !$data['author'] || !$data['content']) {
return false;
}
return $data;
};
#101 这个pr解决了这个问题,感谢,应该合并一下的啊。
@jourdon 谢谢兄弟提醒,已经修复,只要修改了 selecter 类的返回值,找不到数据返回false,但是 isset(false)为true,所以就有问题了,应该返回null,为是么要用 isset($values)判断而不是 !$values,因为0会出错,0其实也是有值的