インターネット技術の継続的な発展に伴い、データ クローラーは人々が情報を入手する重要な方法の 1 つになりました。 PHP フレームワークでは、ThinkPHP6 は強力なデータ操作機能を提供するだけでなく、より便利にデータを取得できるようにする QueryList と呼ばれるデータ取得ライブラリも提供します。
QueryList は、ストリーミング チェーン操作に基づいた PHP データの収集および処理ライブラリであり、HTML、XML、JSON、TXT などのさまざまなタイプのテキストからデータを抽出できます。この記事では主に、ThinkPHP6 で QueryList を使用してデータを取得および処理する方法を紹介します。
1. QueryList のインストール
まず、ThinkPHP6 アプリケーションに QueryList をインストールする必要があります。 Composer を使用して、次のコマンドでインストールできます:
composer require jaeger/querylist
インストールが完了したら、次の内容を含む querylist.php 構成ファイルをアプリケーションの config ディレクトリに作成する必要があります:
<?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 を使用して Baidu ホームページのデータを取得し、タイトルとリンクを出力します。
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 関数を使用して Baidu のホームページのソース コードを取得し、次に、キャプチャする必要があるデータの種類と場所を表すルール配列 $rules を定義します。 。この例では、Web ページ内のすべてのタイトルとリンクを抽出する必要があります。
ルールを定義した後、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 の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









