QueryList采集器开发手册

浏览24996
更新时间2022-04-11

QueryList本身内置的网络操作非常简单,QueryList关注于DOM选择;对于更复杂的网络操作可以选择使用Request扩展,它可以简单的实现:携带cookie、伪造来路、伪造浏览器等功能,但如果觉的它依旧不能满足你的需求,下面有几个可以参考的方案:

1.自己用curl封装一个http请求

    例:

    function getHtml($url)
    {
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                curl_setopt($ch, CURLOPT_AUTOREFERER, true);
                curl_setopt($ch, CURLOPT_REFERER, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $result = curl_exec($ch);
                curl_close($ch);
                return $result;
    }
    $rules = array(
    //采集规则
    );
    //获取页面源码
    $html = getHtml('http://xxx.com');
    //采集
    $data = QueryList::Query($html,$rules)->data;

    QueryList可以无缝与任意第三放http包配合使用,下面以guzzlehttp/guzzle包为例,Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。

    Guzzle中文手册:http://guzzle-cn.readthedocs.io/zh_CN/latest/

    安装

    //安装QueryList
    composer require jaeger/querylist
    //安装Guzzle
    composer require guzzlehttp/guzzle

    使用

    <?php
    require 'vendor/autoload.php';
    //实例化一个Http客户端
    $client = new GuzzleHttp\Client(['base_uri' => 'https://phphub.org']);
    $jar = new \GuzzleHttp\Cookie\CookieJar();
    //发送一个Http请求
    $response = $client->request('GET', '/categories/6', [
       'headers' => [
           'User-Agent' => 'testing/1.0',
           'Accept'     => 'application/json',
           'X-Foo'      => ['Bar', 'Baz']
       ],
       'form_params' => [
           'foo' => 'bar',
           'baz' => ['hi', 'there!']
       ],
       // 'cookies' => $jar,
       'timeout' => 3.14,
       // 'proxy' => 'tcp://localhost:8125',
       // 'cert' => ['/path/server.pem', 'password'],
    ]);
    $body = $response->getBody();
    //获取到页面源码
    $html = (string)$body;
    //采集规则
    $rules = array(
       //文章标题
       'title' => ['.media-heading a','text'],
       //文章链接
       'link' => ['.media-heading a','href'],
       //文章作者名
       'author' => ['.img-thumbnail','alt']
    );
    //列表选择器
    $rang = '.topic-list>li';
    //采集
    $data = \QL\QueryList::Query($html,$rules,$rang)->data;
    //查看采集结果
    print_r($data);

    结果:

    Array
    (
        [0] => Array
            (
                [title] => 好友动态的实现原理
                [link] => https://phphub.org/topics/2750
                [author] => luo975974740
            )
        [1] => Array
            (
                [title] => 打造完美的 Ubuntu16.04 开发环境【持续更新】
                [link] => https://phphub.org/topics/2723
                [author] => liuwantao
            )
        //省略........
         [19] => Array
            (
                [title] => [Laravel 5.3 新功能] 10. 全文搜索方案 Laravel Scout 介绍
                [link] => https://phphub.org/topics/2673
                [author] => monkey
            )
    )

    相关视频

    更多

    免费

    php8,我来也
    初级php8,我来也

    34万次学习

    收藏

    免费

    Thinkphp6.0正式版视频教程
    中级Thinkphp6.0正式版视频教程

    39.6万次学习

    收藏

    免费

    细说PHP第一季
    中级细说PHP第一季

    31万次学习

    收藏

    精品课程

    更多
    前端入门_HTML5
    前端入门_HTML5

    共29课时

    65万人学习

    CSS视频教程-玉女心经版
    CSS视频教程-玉女心经版

    共25课时

    41.3万人学习

    JavaScript极速入门_玉女心经系列
    JavaScript极速入门_玉女心经系列

    共43课时

    76.8万人学习

    独孤九贱(1)_HTML5视频教程
    独孤九贱(1)_HTML5视频教程

    共25课时

    64.2万人学习

    独孤九贱(2)_CSS视频教程
    独孤九贱(2)_CSS视频教程

    共22课时

    24.4万人学习

    独孤九贱(3)_JavaScript视频教程
    独孤九贱(3)_JavaScript视频教程

    共28课时

    36.3万人学习

    独孤九贱(4)_PHP视频教程
    独孤九贱(4)_PHP视频教程

    共89课时

    133.5万人学习

    热门下载

    更多
    phpStudy 2018最新版
    phpStudy 2018最新版

    集成PHP7,16种组合,超全大合集

    下载

    VC9 32位
    VC9 32位

    VC9 32位 phpstudy集成安装环境运行库

    下载

    VC11 32位
    VC11 32位

    VC11 32位 phpstudy集成安装环境运行库​

    下载

    php程序员工具箱完整版
    php程序员工具箱完整版

    程序员工具箱 v1.0 php集成环境

    下载

    VC14 32位
    VC14 32位

    VC14 32位 phpstudy安装环境运行库

    下载

    SublimeText3汉化版
    SublimeText3汉化版

    中文版,非常好用

    下载

    Notepad++ Windows版
    Notepad++ Windows版

    Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

    下载