搜尋
首頁php框架ThinkPHPThinkphp5與QueryList實作擷取頁面功能(爬蟲)

Thinkphp5與QueryList實作擷取頁面功能(爬蟲)

QueryList 是什麼?

#QueryList是一套用於內容收集的PHP工具,它使用更現代化的開發思想,語法簡潔、優雅,可擴展性強。相較於傳統的使用晦澀的正規表示式來做採集,QueryList使用了更強大而優雅的CSS選擇器來做採集,大大降低了PHP做採集的門檻,同時也讓採集程式碼易讀易維護,讓你從此告別晦澀難懂且不易維護的正規表示式。

 

QueryList 提供的一整套內容採集解決方案

● DOM內容選擇:CSS選擇器

● HTTP客戶端:GuzzleHTTP

● 內容過濾:CSS選擇器

● 解決亂碼:內建多套亂碼解決方案

● 額外功能:豐富的擴充插件

 

前提

專案主要使用thinkphp5框架,主要用在`QueryList.php`和`phpQuery.php`這兩個檔案。我們可以切換到專案目錄,extend里新建QL,然後在QL目錄執行composer指令安裝QueryList:

composer require jaeger/querylist

然後在需要使用的控制器中加入use QL\QueryList; 接下來就在控制器裡編寫程式碼了,以下是一個實例

//需要采集的目标页面
$page = 'http://cms.querylist.cc/news/566.html';
//采集规则
$reg = array(
   //采集文章标题
   'title' => array('h1','text'),
   //采集文章发布日期,这里用到了QueryList的过滤功能,过滤掉span标签和a标签
   'date' => array('.pt_info','text','-span -a',function($content){
       //用回调函数进一步过滤出日期
       $arr = explode(' ',$content);
       return $arr[0];
   }),
   //采集文章正文内容,利用过滤功能去掉文章中的超链接,但保留超链接的文字,并去掉版权、JS代码等无用信息
   'content' => array('.post_content','html','a -.content_copyright -script',function($content){
       //利用回调函数下载文章中的图片并替换图片路径为本地路径
       //使用本例请确保当前目录下有image文件夹,并有写入权限
       //由于QueryList是基于phpQuery的,所以可以随时随地使用phpQuery,当然在这里也可以使用正则或者其它方式达到同样的目的

       $doc=\phpQuery::newDocumentHTML($content);
       $imgs = pq($doc)->find('img');
       foreach ($imgs as $img) {
           $src = 'http://cms.querylist.cc'.pq($img)->attr('src');
           $localSrc = md5($src).'.jpg';
           $stream = file_get_contents($src);
           file_put_contents($localSrc,$stream);
           pq($img)->attr('src',$localSrc);
       }
       return $doc->htmlOuter();
   })
);
$rang = '.content';
$ql = QueryList::Query($page,$reg,$rang);
$data = $ql->getData();
//打印结果
print_r($data);

 

 

#注意:

使用phpQuery類別時需要在前面加上\,因為phpQuery.php中沒有使用命名空間,因為使用命名空間後,QueryList.php無法使用phpQuery類別。

更多相關ThinkPHP知識,請造訪ThinkPHP教學

以上是Thinkphp5與QueryList實作擷取頁面功能(爬蟲)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:cnblogs。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具