用PHP轻松获取公众号文章内容,实现高效阅读
优采云 发布时间: 2023-03-21 07:20想要获取公众号文章的内容,很多人会想到爬虫,但这种方式不仅麻烦,而且容易被封IP。其实,使用PHP也可以轻松实现获取公众号文章内容的功能。
1.获取公众号文章列表
首先需要获取公众号文章列表,可以通过微信公众平台提供的接口实现。具体步骤如下:
-获取access_token
php
$url ='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET';
$res = json_decode(file_get_contents($url));
$access_token =$res->access_token;
-获取文章列表
php
$url ="https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=".$access_token;
$data = array(
"type"=>"news",
"offset"=>0,
"count"=> 20
);
$data = json_encode($data);
$res = json_decode(http_request($url,$data));
2.获取文章内容
获取到文章列表后,就可以根据每篇文章的media_id获取其内容了。具体步骤如下:
-获取文章详情
php
$url ="https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=".$access_token;
$data = array(
"media_id"=>$media_id
);
$data = json_encode($data);
$res = json_decode(http_request($url,$data));
3.解析HTML
获取到的文章内容是HTML格式的,需要对其进行解析。可以使用PHP自带的DOMDocument类来解析HTML。
php
$dom = new DOMDocument();
$dom->loadHTML($res->content);
$content =$dom->saveHTML();
4.过滤无用标签
解析出来的HTML可能包含一些无用标签,需要将其过滤掉。
php
$content = preg_replace('/<script\b[^>]*>(.*?)<\/script>/is',"",$content);//去除script标签及其内容
$content = preg_replace('/<style\b[^>]*>(.*?)<\/style>/is',"",$content);//去除style标签及其内容
$content = preg_replace('/<img.*?>/is',"",$content);//去除img标签及其内容
$content = strip_tags($content,'<p><br><a><strong><em><u><h1><h2><h3><h4><h5><h6>');//只保留指定标签
5.输出结果
最后将过滤后的结果输出即可。
php
echo $content;
综上所述,通过以上五个步骤即可轻松实现获取公众号文章内容的功能。