BG大游集团|Home

135-2716-3909
网站建设资讯详细

关于thinkphp6与QueryList采集的相□□关使用的□□内容

发表日期:2026-08-02 09:58:27   作者来源:陈应信   浏览:1760   标签:网站开发    
很多人都□□知道,网站的信□□息采集非□□□□常的重要,可以从别□□的网站里□□的数据采□□集过来给□□自己的网□□□站使用,所以就需□□□□要用到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;//获得图片□□的一个二□□□维数组,然后再循□□□□环图片,下载图片□□□保存到本□□□□地上。
处理以上□□□事情后,就可以将□□处理后的□□数据写入□□□□到数据表❖中了,采集也就☆完成了。
如没特殊注明,文章均为BG大游集团原创,转载请注明来自https://www.yichuanlaw.com/news/6857.html
相关资讯
最新文章