用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;

  综上所述,通过以上五个步骤即可轻松实现获取公众号文章内容的功能。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线