querylist 采集成功一次失败一次交替出现

发布于 2022-09-06 22:39:21 字数 729 浏览 14 评论 0

第一次能采集到,第二次报错 未定义数组下标: 0
第三次又可以采集,这样交替出现问题。
代码如下,log出来没发现什么问题。

public function getOneTitle($content_html){
    //采集规则
    $content_rules = [
        'title' => array('title', 'text')  //文章标题
    ];
    $content_ql = $this->ql->html($content_html)->rules($content_rules)->query();
    $query = $content_ql->getData();
    $data = $query->all();
    if(empty($query->all()[0])){
        Log::write('详情1>>>'.$content_html."<<<<<1详情end");
        $html2 = $content_ql->getHtml();
        Log::write('详情2>>>'.$html2."<<<<<2详情end");
        var_dump($data);
    }
    $content = $data[0]['title'];

    return $content;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

活泼老夫 2022-09-13 22:39:21

第一次和第二次采集的是同样的内容吗?把$query->all()打印出来看看, 第二次应该是没有选择到内容

浅唱ヾ落雨殇 2022-09-13 22:39:21

这个问题,我也出现过,用getHtml是查获取是正常,但将获取 内容在ql->html()中加载,有时加载得上,有时会加载不到。非常奇怪的问题。如果只是看程序,这么几行,似乎没有问题。应该是querylist设计上的问题,后面将处理写为插件方式进行调用,就没有再出现过问题了。

傻比既视感 2022-09-13 22:39:21

请问楼主怎么解决的?
我现在也遇到了这个问题,采集一个页面的第1页没有问题,第2、3...页就全部失败,从第2页开始采集也没问题。
getHtml()获取到的html没问题,但是getData那里获取的的数据为空

樱桃奶球 2022-09-13 22:39:21

querylist.php
可以尝试修改为这样

    /**
     * URL请求
     * @param $url
     * @return string
     */
    private function _request($url)
    {
        $result = file_get_contents($url);
        return $result;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文