自动化采集公众号文章结构,querylist助你快速高效
优采云 发布时间: 2023-03-22 06:20微信公众号是许多企业和个人进行宣传、推广的重要平台,而如何快速有效地采集公众号文章成为了一个问题。本文将介绍一种名为querylist的工具,通过分析公众号文章页面结构,实现自动化采集。具体内容如下:
一、querylist简介
querylist是一个基于phpQuery和Requests库的PHP爬虫框架,能够方便地进行网页数据抓取和处理。它能够根据CSS选择器或XPath表达式获取网页中的数据,并支持自定义回调函数进行数据处理。
二、安装与配置
在使用querylist之前,需要先安装php和composer。然后在命令行中执行以下命令进行安装:
composer require jaeger/querylist
安装完成后,在代码中引入autoload.php文件即可开始使用。
三、获取微信公众号文章列表
通过分析微信公众号文章列表页面结构,可以发现每篇文章都包含以下信息:标题、发布时间、阅读量、点赞量、文章链接等。可以通过以下代码获取某个公众号最新的10篇文章:
use QL\QueryList;
$url ='https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzIyMDM4NTYwOA==&scene=124#wechat_redirect';
$html = file_get_contents($url);
$ql = QueryList::html($html);
$articles =$ql->find('.weui_media_bd')->map(function($item){
$title =$item->find('.weui_media_title')->text();
$time = strtotime($item->find('.weui_media_extra_info')->text());
$read_num = intval($item->find('.js_read_num')->text());
$like_num = intval($item->find('.js_like_num')->text());
$link ='https://mp.weixin.qq.com'.$item->find('a')->attr('href');
return compact('title','time','read_num','like_num','link');
})->toArray();
print_r($articles);
四、获取微信公众号文章内容
通过以上代码获取到每篇文章的链接后,可以继续使用querylist来获取文章正文内容。需要注意的是,由于微信公众号会对非法请求做出限制,因此需要设置User-Agent和Referer头信息以模拟浏览器请求。
use QL\QueryList;
$url ='https://mp.weixin.qq.com/s?__biz=MzIyMDM4NTYwOA==&mid=2247488838&idx=1&sn=a9b9e7c3a3d3d6b2e1f60a0b28c8f5d6&chksm=e8827e24dff5f732a6a5a0dcfc7cac2d1e16f63d9f55c9c57e2d4cc4cad4f0b67f4b7cc8be59#rd';
$headers =[
'User-Agent'=>'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
'Referer'=>'https://mp.weixin.qq.com/'
];
$html = requests::get($url, null,$headers)->body;
$ql = QueryList::html($html);
$content =$ql->find('#js_content')->html();
echo $content;
五、其他注意事项
1. querylist默认使用file_get_contents函数获取网页内容,如果需要使用curl或者其他方式,请查看官方文档;
2.如果需要大量采集数据,建议使用代理池以避免被封禁;
3.使用querylist采集数据时,请遵守相关法律法规。
总结:
本文介绍了一种利用querylist采集微信公众号文章的方法,并提供了相应代码实现。除此之外,还介绍了querylist的基本用法和注意事项。希望本文能够对大家有所帮助。优采云提供SEO优化服务,欢迎访问www.ucaiyun.com了解更多详情。