0

已经用querylist采集了几个网站了,非常不错,这是第一次遇到双class name无法采集到item的。

目标网址是一个discuz程序 ,/portal.php?mod=list&catid=1

包裹item的元素是:<div class="bm_c xls"><dl>......</dl></div>

我尝试了多个range,我认为最贴切的2个range在下面的代码里,执行结果都是空的[]

//采集规则
        $reg  = [
            'detail_link' => ['dd>span>a', 'href'],
            //采集文章标题
            'title'       => ['dt>div>a>.img', 'alt'],
            'image'       => ['dt>div>a>.img', 'src'],
            'brief'       => ['dd>.span:eq(1)', 'text', '-a -.content_copyright -script'],
        ];
        $rang = '.bm_c:eq(0)';  //现在使用的
//        $rang = '.xls>dl';  //这是我最初使用的

        try {
//            echo QueryList::get($url)->getHtml();  // worked

            $data = QueryList::get($url, [
                'timeout' => 30,
            ], $this->getRobotHeader())->rules($reg)->range($rang)->query()->getData()->all();
            dd($data);  // show empty []
2019-06-09 提问
0 个回答

撰写答案

推广链接