日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

隨著互聯網技術的不斷發展,數據爬蟲已經成為了人們獲取信息的重要方式之一。在PHP的框架中,ThinkPHP6不僅提供了強大的數據操作功能,還為我們提供了一種名為QueryList的數據抓取庫來幫助我們更方便地獲取數據。

QueryList是一個基于流式鏈式操作的PHP數據采集與處理類庫,可以從HTML、XML、JSON、TXT等各種類型的文本中提取數據。本文將主要介紹在ThinkPHP6中如何使用QueryList來實現數據的抓取和處理。

1. 安裝QueryList

首先,我們需要在我們的ThinkPHP6應用中安裝QueryList。可以通過以下命令來使用Composer進行安裝:

composer require jaeger/querylist

登錄后復制

安裝完成后,我們需要在應用的config目錄下創建一個querylist.php配置文件,內容如下:

<?php

return [
    'default' => [
        'type' => 'php',
        'host' => '',
        'login' => '',
        'password' => '',
        'database' => '',
        'prefix' => '',
        'charset' => 'utf8',
        'deploy' => 0,
        'rw_separate' => false,
        'master_num' => 1,
        'slave_no' => '',
        'fields_fix'=>"fl_",
        'debug' => true,
        'logfile' => 'QueryList.log',
    ],
];

登錄后復制

這個配置文件是QueryList的默認配置,配置文件中的各個參數的含義和用法可以在QueryList的官方文檔中查看。

2. 使用QueryList進行數據抓取

QueryList提供了一系列的鏈式操作方法來幫助我們獲取和處理數據,這些方法包含了查找、篩選、提取和轉換等一系列常見的數據操作。

以下是一個簡單的例子,我們將使用QueryList來抓取百度首頁的數據,并輸出標題和鏈接。

use QLQueryList;

$html = file_get_contents('https://www.baidu.com');
$rules = [
    'title' => ['title', 'text'],
    'link' => ['a', 'href']
];
$data = QueryList::html($html)->rules($rules)->query()->getData();
print_r($data->all());

登錄后復制

以上代碼片段中,我們首先使用PHP自帶的file_get_contents函數獲取了百度首頁的源代碼,然后定義了一個規則數組$rules,表示我們需要抓取的數據的類型和位置。在這個例子中,我們需要提取出網頁中所有的標題和鏈接。

在定義好規則之后,我們將HTML文本轉化成查詢對象,并將規則應用到查詢對象中,最后通過getData方法獲取到數據。使用print_r方法來輸出獲取到的所有數據,我們可以看到輸出的結果如下:

Array
(
    [0] => Array
        (
            [title] => 百度一下,你就知道
            [link] => https://www.baidu.com/s?tn=site888_2_pg&ch=12&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=15&rsv_sug1=12&rsv_sug7=100&sug=0&prefixsug=0&rsp=0&inputT=2890&rsv_sug4=3114
        )

    [1] => Array
        (
            [title] => 新聞
            [link] => https://www.baidu.com/s?cl=2&tn=site888_2_pg&ch=11&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=19&rsv_sug1=17&rsv_sug7=101&sug=0&prefixsug=news&rsp=0&inputT=2890&rsv_sug4=4085
        )

    [2] => Array
        (
            [title] => hao123_上網從這里開始
            [link] => https://www.baidu.com/s?cl=3&tn=site888_2_pg&ch=6&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=25&rsv_sug1=23&rsv_sug7=100&sug=0&prefixsug=hao123&rsp=0&inputT=2890&rsv_sug4=5329
        )

    [3] => Array
        (
            [title] => 地圖
            [link] => https://www.baidu.com/s?cl=4&tn=site888_2_pg&ch=1&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=31&rsv_sug1=28&rsv_sug7=100&sug=0&prefixsug=map&rsp=0&inputT=2890&rsv_sug4=6166
        )

    [4] => Array
        (
            [title] => 視頻
            [link] => https://www.baidu.com/s?cl=5&tn=site888_2_pg&ch=8&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=37&rsv_sug1=34&rsv_sug7=100&sug=0&prefixsug=video&rsp=0&inputT=2890&rsv_sug4=7407
        )

    [5] => Array
        (
            [title] => 貼吧
            [link] => https://www.baidu.com/s?cl=6&tn=site888_2_pg&ch=7&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=43&rsv_sug1=39&rsv_sug7=100&sug=0&prefixsug=tf&rsp=0&inputT=2890&rsv_sug4=8649
        )

    [6] => Array
        (
            [title] => 學術
            [link] => https://www.baidu.com/s?cl=7&tn=site888_2_pg&ch=9&usm=0&rsv_pq=c41e6776001f4675&rsv_t=18fbRjBF2q5prQVFnv46BpnHtLGviB4KLud38LaBjYeT%2BRvj1zHqh7ksOBo&rqlang=cn&rsv_dl=0&rs=1&inputT=2696&rsv_sug3=49&rsv_sug1=45&rsv_sug7=100&sug=0&prefixsug=xueshu&rsp=0&inputT=2890&rsv_sug4=9890
        )

    [7] => Array
        (
            [title] => 登錄
            [link] => https://passport.baidu.com/v3/?reg&redirect=http%3A%2F%2Fwww.baidu.com%2F&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F
        )

)

登錄后復制

可以看到,我們已經成功地提取出了頁面中的標題和鏈接。通過簡單的鏈式操作,我們就可以完成數據的抓取和處理。

3. 使用QueryList進行數據存儲

在進行數據抓取和處理之后,我們有可能需要將獲取的數據存儲到數據庫中,以便后續的使用。QueryList提供了一個方便的方法來將數據存儲到數據庫中,以下是一個簡單的例子,我們將數據存儲到MySQL數據庫中。

use QLQueryList;

$rules = [
    'title' => ['title', 'text'],
    'link' => ['a', 'href']
];
$data = QueryList::get('https://www.baidu.com')->rules($rules)->query()->getData();
$db = new     hinkDb;
$affected = $db::table('test')->insertAll($data->all());
echo '添加成功' . $affected . '條數據';

登錄后復制

首先,我們定義了之前的規則數組和獲取數據的方法。在這個例子中,我們使用了QueryList的get方法來獲取頁面的數據。獲取數據后,我們首先實例化了一個數據庫操作類,然后使用insertAll方法將數據批量插入到數據庫中。

執行上述代碼之后,我們可以在MySQL數據庫中看到新插入的數據。

綜上所述,在ThinkPHP6中使用QueryList能夠非常方便地完成數據的抓取和處理,并且也能夠很方便地將抓取到的數據存儲到數據庫中。QueryList的鏈式操作方式也非常適合數據的處理和轉換。

以上就是在ThinkPHP6中使用QueryList的詳細內容,更多請關注www.xfxf.net其它相關文章!

分享到:
標簽:QueryList thinkphp 使用
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定