轻松获取微信公众号文章,querylist帮你实现!

优采云 发布时间: 2023-03-24 12:15

  自媒体时代,微信公众号已成为了一个不可或缺的平台。而对于那些想要从中获取足够流量的人来说,采集微信公众号文章显然是一种非常重要的手段。本文将介绍一种利用querylist采集微信公众号文章的方法,并结合实际案例进行详细分析。

  1. querylist概述

  querylist是一个基于PHP开发的简单、灵活、高效的Web采集工具。它可以通过CSS选择器、XPath表达式等方式来定位页面中的元素,并提供了丰富的API来实现数据提取、数据筛选、数据清洗等操作。querylist可以广泛应用于网页抓取、数据分析、信息监控等领域。

  2. querylist安装

  要使用querylist,首先需要在本地安装PHP环境。可以下载PHP官方网站上最新版本的PHP并按照说明进行安装。安装好PHP后,可以使用composer来安装querylist:

  

composer require jaeger/querylist

  3.获取微信公众号文章链接

  

  在采集微信公众号文章之前,我们需要先获取到目标公众号的文章链接。这里我们以“优采云”为例,通过以下步骤获取其最新10篇文章链接:

  (1)打开微信公众号“优采云”;

  (2)在公众号主页中点击“历史文章”,进入历史文章页面;

  (3)使用浏览器开发者工具,查看历史文章列表中每篇文章的链接地址,并保存到一个数组中。

  代码如下:

  php

require 'vendor/autoload.php';

use QL\QueryList;

//获取最新10篇文章链接

$urls =[];

$html = file_get_contents('https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzIyMDMzMTQ0Nw==&scene=124&#wechat_redirect');

$ql = QueryList::html($html);

$ql->find('.weui_media_title')->map(function($item) use(&$urls){

$urls[]=$item->attr('hrefs');

});

$urls = array_slice($urls,0, 10);

print_r($urls);

  

  4.采集微信公众号文章内容

  获取到文章链接后,就可以使用querylist来采集每篇文章的内容了。这里我们以第一篇文章为例,采集其标题、作者、发布时间和正文内容。

  代码如下:

  php

require 'vendor/autoload.php';

use QL\QueryList;

//获取第一篇文章内容

$url ='https://mp.weixin.qq.com/s?src=11&timestamp=1648155097&ver=3349&signature=jt5yljKuZrW8H4jE4pVJ1cU6sJ4hL9oQmTJ0dZzY1S4HJxgI1zB6jvLQ2zG0RfB6c7U6P3q6NpZG1E4lLJlDzTbCv-4yWj2X9T0TJYsZBb8gSxgdJyKw*VQ2aLkR7WnJ&new=1';

$html = file_get_contents($url);

$ql = QueryList::html($html);

$title =$ql->find('#activity-name')->text();

$author =$ql->find('#js_name')->text();

$time =$ql->find('#publish_time')->text();

$content =$ql->find('#js_content')->html();

echo "标题:{$title}\n";

echo "作者:{$author}\n";

echo "发布时间:{$time}\n";

echo "正文内容:\n{$content}\n";

  5.批量采集微信公众号文章

  有了单篇文章采集的基础,我们可以很容易地将其扩展到多篇文章的采集。这里我们对前面获取到的10篇文章链接进行循环遍历,依次采集每篇文章的内容,并将结果保存到一个数组中。

  

  代码如下:

  php

require 'vendor/autoload.php';

use QL\QueryList;

//批量采集文章内容

$urls =[

'https://mp.weixin.qq.com/s?src=11&timestamp=1648155097&ver=3349&signature=jt5yljKuZrW8H4jE4pVJ1cU6sJ4hL9oQmTJ0dZzY1S4HJxgI1zB6jvLQ2zG0RfB6c7U6P3q6NpZG1E4lLJlDzTbCv-4yWj2X9T0TJYsZBb8gSxgdJyKw*VQ2aLkR7WnJ&new=1',

//省略其余文章链接

];

$result =[];

foreach ($urls as $url){

$html = file_get_contents($url);

$ql = QueryList::html($html);

$title =$ql->find('#activity-name')->text();

$author =$ql->find('#js_name')->text();

$time =$ql->find('#publish_time')->text();

$content =$ql->find('#js_content')->html();

$result[]=[

'title'=>$title,

'author'=>$author,

'time'=>$time,

'content'=>$content

];

}

print_r($result);

  6.结果展示

  最后,我们将采集到的结果进行展示。可以将其保存到数据库中,也可以将其输出为HTML页面。

  代码如下:

  php

require 'vendor/autoload.php';

use QL\QueryList;

//批量采集文章内容

$urls =[

'https://mp.weixin.qq.com/s?src=11&timestamp=1648155097&ver=3349&signature=jt5yljKuZrW8H4jE4pVJ1cU6sJ4hL9oQmTJ0dZzY1S4HJxgI1zB6jvLQ2zG0RfB6c7U6P3q6NpZG1E4lLJlDzTbCv-4yWj2X9T0TJYsZBb8gSxgdJyKw*VQ2aLkR7WnJ&new=1',

//省略其余文章链接

];

$result =[];

foreach ($urls as $url){

$html = file_get_contents($url);

$ql = QueryList::html($html);

$title =$ql->find('#activity-name')->text();

$author =$ql->find('#js_name')->text();

$time =$ql->find('#publish_time')->text();

$content =$ql->find('#js_content')->html();

$result[]=[

'title'=>$title,

'author'=>$author,

'time'=>$time,

'content'=>$content

];

}

//将结果输出为HTML页面

echo "<html><head><meta charset='UTF-8'><title>优采云最新文章</title></head><body>";

foreach ($result as $item){

echo "<h2>{$item['title']}</h2>";

echo "<p>作者:{$item['author']},发布时间:{$item['time']}</p>";

echo "<div>{$item['content']}</div>";

}

echo "</body></html>";

//将结果保存到数据库中

$conn = new mysqli('localhost','root','','test');

$conn->set_charset('utf8');

$stmt =$conn->prepare("INSERT INTO articles(title, author, time, content) VALUES (?,?,?,?)");

foreach ($result as $item){

$stmt->bind_param('ssss',$item['title'],$item['author'],$item['time'],$item['content']);

$stmt->execute();

}

$stmt->close();

$conn->close();

  以上就是利用querylist采集微信公众号文章的详细步骤和代码实现。通过本文的介绍,相信读者已经掌握了一种简单、高效的采集方式,并可以将其应用于实际项目中。如果您还有其他相关问题,欢迎咨询优采云,我们将为您提供最优质的服务和解决方案。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线