国产女人被狂躁到高潮小说,亚洲日韩一区二区三区,色窝窝无码一区二区三区成人网站 ,丰满岳乱妇在线观看中字无码

400-800-9385
網站建設資訊詳細

關于thinkphp6與QueryList采集的相關使用的內容

發表日期:2023-08-18 09:58:27   作者來源:陳應信   瀏覽:923   標簽:網站開發    
很多人都知道,網站的信息采集非常的重要,可以從別的網站里的數據采集過來給自己的網站使用,所以就需要用到QueryList插件了,下面就系統的講一下在thinkphp6下是如何使用QueryList的。
首先是下載QueryList的文件,存放到extend/Caiji里。

文件

然后是引入文件,如下圖所示:

導入文件

這里需要提一下,引入的文件必須在namespace app\home\controller的下面,否則會程序會報錯,引入的代碼:
require_once  app()->getRootPath()."extend/Caiji/phpQuery.php";// 引入插件
require_once  app()->getRootPath()."extend/Caiji/QueryList.php";
use QL\QueryList;
app()->getRootPath()是指引入文件根路徑,例如這里是I:/wamp64/www/。
 
現在來講使用,其實采集網站數據除非就是打開要采集網站的指定的URL,打開后頁面后,匹配相關的標簽,得到我們要采集的數據的一個數組,然后對數組進行一系列的處理后,得到我們想到的數據,然后將這些數據寫入到數據庫表里,就基本完成了。
例如我們打開某個頁面,代碼如下:
  $html = '某個網站的URL';
      $rules = [
      'title'=>['.article__title','text'],
      'lay'=>['.meta-info-list li:eq(2) a','text'],
      'lay2'=>['.meta-info-list li:eq(3) a','text'],
      'content'=>['.article-content>.content','html'],
      ];
      $data_list = QueryList::Query($html,$rules)->data;
 
 其中title是新聞的標題,如下圖所示,這里我們用text方式獲取.article__title里的純文本就行
 

html代碼

 
還有lay和lay2是獲取文章的作者,lay是每指.meta-info-list 的第二個li的純文本text,lay2是.meta-info-list第三個li的text,如下圖所示:
 

html

content是指新聞的具體內容了,處理數據也是整個最復雜的,這里包括去除一些不需要的內容,獲取遠程的圖片地址,并下載圖片到本地上等都需要在此操作的,content獲取的是.article-content>.content的html,即帶有html屬性標簽的內容。
 

開發代碼1

獲取這些內容后,我們先刪除<noscript></noscript>里的內容,如下圖所示:
 

開發代碼2



 $content = preg_replace('#<noscript[^>]*?[^>]*>(.*?)</noscript>#is', '', $content);使用該正則表達式即可刪除<noscript></noscript>和里面的內容。
 
由于內容里存在圖片,如下圖所示:

開發代碼3

所以我們還要對content進行篩選,得到圖片的數組,代碼如下:
$rules2 =[
      'picture_list'=>['img','src']
      ];
 
   $data2 = QueryList::Query($content,$rules2)->data;//獲得圖片的一個二維數組,然后再循環圖片,下載圖片保存到本地上。
處理以上事情后,就可以將處理后的數據寫入到數據表中了,采集也就完成了。
如沒特殊注明,文章均為方維網絡原創,轉載請注明來自http://www.sdlwjx666.com/news/6857.html