인터넷 기술의 지속적인 발전으로 데이터 크롤러는 사람들이 정보를 얻는 중요한 방법 중 하나가 되었습니다. 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를 사용하여 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를 정의합니다. 이 예에서는 웹 페이지의 모든 제목과 링크를 추출해야 합니다.
규칙을 정의한 후 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
