phpspider icon indicating copy to clipboard operation
phpspider copied to clipboard

required用法有问题

Open jourdon opened this issue 6 years ago • 2 comments

定义该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;
};

jourdon avatar Jun 21 '18 02:06 jourdon

#101 这个pr解决了这个问题,感谢,应该合并一下的啊。

jourdon avatar Jun 21 '18 02:06 jourdon

@jourdon 谢谢兄弟提醒,已经修复,只要修改了 selecter 类的返回值,找不到数据返回false,但是 isset(false)为true,所以就有问题了,应该返回null,为是么要用 isset($values)判断而不是 !$values,因为0会出错,0其实也是有值的

owner888 avatar Jul 16 '18 14:07 owner888