一、安装
通过Composer安装:
composer require jaeger/querylist
官方参考文档:https://querylist.cc/docs/guide/v3/installation
二、本次主要运用下载到本地的querylist包来进行诠释
1.将querylist包解压到本地,放在本地框架的pubilc文件夹下(phpQuery.php Querylist.php 两个主要文件)

2.创建控制器,并在控制器中引入querylist的命名空间

3.控制器代码
    public function index()
    {
        //引入采集文件
        require "QueryList/QueryList.php";
        require "QueryList/phpQuery.php";
        //设置采集的地址
        $url="https://www.17k.com/";
        //设置采集规则
        $rules = array(
            //采集id为one这个元素里面的纯文本内容
            ‘title‘ => array(‘dd>h3>a‘,‘text‘),
            //采集class为two下面的超链接的链接
            ‘content‘ => array(‘dd>.info>a‘,‘text‘),
            //采集class为two下面的第二张图片的链接
            ‘img‘ => array(‘dd>a>img‘,‘src‘),
            //采集span标签中的HTML内容
            ‘anthor‘ => array(‘dd>.author>a‘,‘text‘)
        );
        //采集数据
        $data=@ QueryList::Query($url,$rules)->data;
        //未采集到数据处理
        foreach ($data as $k=>$v){
            $data[$k][‘title‘]=empty($v[‘title‘])?‘未采集到数据‘:$v[‘title‘];
            $data[$k][‘content‘]=empty($v[‘content‘])?‘未采集到数据‘:$v[‘content‘];
            $data[$k][‘img‘]=empty($v[‘img‘])?‘未采集到数据‘:$v[‘img‘];
            $data[$k][‘anthor‘]=empty($v[‘anthor‘])?‘未采集到数据‘:$v[‘anthor‘];
        }
        //将线上图片保存到本地文件夹中
        foreach ($data as $k=>$v){
      
          $img=file_get_contents($v[‘img‘]);
          $fileimg=‘uploads/‘.time().rand(1,999).substr($v[‘img‘],strrpos($v[‘img‘],"."));
          file_put_contents($fileimg,$img);
          $data[$k][‘img‘]=$fileimg;
      }
        //添加入库
        model(‘Book‘)->insertAll($data);
        $data=Book::paginate(5);
        if ($data){
            return view(‘lists‘,[‘data‘=>$data]);
        }else{
            return "<script>alert(‘添加失败‘)</script>";
        }

4.剩下的就保存入库就可以了,tp框架中数组入库运用 insertAll laravel框架见上图
原文:https://www.cnblogs.com/cyxng/p/14204357.html