用PHP获取微信公众号文章,轻松实现!

微信公众号已经成为了很多人获取信息的重要途径,而在开发中,有时候需要通过代码来获取公众号文章。PHP作为一种广泛应用的Web编程语言,也可以实现这一功能。本文将详细介绍PHP如何获取微信公众号文章。

一、准备工作

在开始之前,我们需要先准备好以下两个东西:一个是微信公众平台的AppID和AppSecret,另一个是PHP的curl扩展。如果你还没有注册过微信公众平台账号,请先注册并创建一个应用。

二、获取access_token

接下来,我们需要通过微信API来获取access_token。access_token是调用微信API的凭证,有效期为2小时。我们可以通过以下代码来获取:

php$url =';appid=YOUR_APPID&secret=YOUR_APPSECRET';$result = file_get_contents($url);$json = json_decode($result, true);$access_token =$json['access_token']; 三、获取文章列表

有了access_token之后,我们就可以通过微信API来获取公众号的文章列表了。具体方法是调用以下接口:

php$url =''.$access_token;$data = array( 'type'=>'news', 'offset'=>0, 'count'=> 20);$options = array( 'http'=> array( 'method'=>'POST', 'header'=>"Content-Type: application/json\r\n", 'content'=> json_encode($data) ));$context = stream_context_create($options);$result = file_get_contents($url, false,$context);$json = json_decode($result, true);$articles =$json['item']; 这里我们设置了type为news,表示获取的是图文素材;offset为0,表示从第一篇文章开始获取;count为20,表示一次最多获取20篇文章。

四、获取文章内容

有了文章列表之后,我们就可以通过以下接口来获取每篇文章的具体内容:

php$url =''.$access_token;$data = array( 'media_id'=>$media_id);$options = array( 'http'=> array( 'method'=>'POST', 'header'=>"Content-Type: application/json\r\n", 'content'=> json_encode($data) ));$context = stream_context_create($options);$result = file_get_contents($url, false,$context);$json = json_decode($result, true);$content =$json['content']; 这里的$media_id是每篇文章的唯一标识符。

五、处理HTML内容

获取到的文章内容是HTML格式的,我们需要对其进行处理才能显示在页面上。具体方法是使用PHP内置的DOMDocument类来解析HTML并提取所需内容。以下是一个示例代码:

php$doc = new DOMDocument();@$doc->loadHTML($content);$xpath = new DOMXPath($doc);$title =$xpath->query('//h2[@class="rich_media_title"]')->item(0)->nodeValue;$content ='';$paragraphs =$xpath->query('//div[@class="rich_media_content"]/p');foreach ($paragraphs as $paragraph){ $content .='<p>'.$paragraph->nodeValue .'</p>';} 这里我们提取了文章的标题和正文内容,可以根据需要进一步处理。

https://www.720yun.com/vr/03ejzskf5k2 https://www.720yun.com/vr/1edjzskf5m8 https://www.720yun.com/vr/467jzskf5n2

六、完整示例

下面是一个完整的示例代码,可以直接复制粘贴使用:

php$appid ='YOUR_APPID';$appsecret ='YOUR_APPSECRET';$url =';appid='.$appid .'&secret='.$appsecret;$result = file_get_contents($url);$json = json_decode($result, true);$access_token =$json['access_token'];$url =''.$access_token;$data = array( 'type'=>'news', 'offset'=>0, 'count'=> 20);$options = array( 'http'=> array( 'method'=>'POST', 'header'=>"Content-Type: application/json\r\n", 'content'=> json_encode($data) ));$context = stream_context_create($options);$result = file_get_contents($url, false,$context);$json = json_decode($result, true);$articles =$json['item'];foreach ($articles as $article){ $media_id =$article['media_id']; $url =''.$access_token; $data = array( 'media_id'=>$media_id ); $options = array( 'http'=> array( 'method'=>'POST', 'header'=>"Content-Type: application/json\r\n", 'content'=> json_encode($data) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false,$context); $json = json_decode($result, true); $content =$json['content']; $doc = new DOMDocument(); @$doc->loadHTML($content); $xpath = new DOMXPath($doc); $title =$xpath->query('//h2[@class="rich_media_title"]')->item(0)->nodeValue; $content =''; $paragraphs =$xpath->query('//div[@class="rich_media_content"]/p'); foreach ($paragraphs as $paragraph){ $content .='<p>'.$paragraph->nodeValue .'</p>'; } echo '<h1>'. htmlspecialchars($title).'</h1>'; echo '<div>'. htmlspecialchars_decode($content).'</div>';} 七、总结

通过以上步骤,我们就可以使用PHP来获取微信公众号的文章了。需要注意的是,由于微信API有调用频率限制,建议在获取文章列表时一次获取较多的文章,然后逐篇获取文章内容。另外,由于微信公众号文章的HTML结构可能不同,需要根据实际情况进行调整。

点赞
收藏

评论区

加载中...

相关推荐

微标题信公众号文章,阅读数,点赞数历史文章抓取

微标题信公众号文章,阅读数,点赞数历史文章抓取需求最近在做舆情与微信文章相关的数据抓取,发现微信公众号有些难点很难克服。市面上流行的数据抓取思路要么被腾讯封杀,要么操作难度大。解决方案搜狗微信无法采集历史,而且搜索也不按时间排序。获取的数据的价值不高,仅仅可以通过他获取公众号的biz。微信公众平台微信公

Android Binder原理(五)系统服务的获取过程

Binder原理Android框架层本文首发于微信公众号「后厂技术官」<!more前言在本系列的此前文章中,以MediaPlayerService为例,讲解了系统服务是如何注册的(addService),既然有注册那肯定也要有获取,本篇文章仍旧以MediaPlayerService为例,来讲解系统服务的获取过程(getService)。文章会分为两个部分

PHP 微信公众号消息加解密

公众号配置根据提示设置即可:【图中信息均为无意义数据,仅供参考。注意服务器地址需可接收GET/POST两种请求】AESKey直接点一下随机生成即可,Token可以生成一个UUID再把UUID进行MD5一次即可。接收关注事件消息示例请求参数校验这一步根据项目情况,可供参考:(Lumen框架)php$valida

C#微信公众号开发——获取access_token

access\_token是公众号的全局唯一票据,公众号调用各接口时都需使用access\_token。正常情况下access\_token有效期为7200秒(两个小时),微信获取access\_token接口每日限制调用2000次。(一)access\_token的作用  access\_token由公众号的AppID和AppSecret组成,所以

h5 接入微信支付

我们公司,现在用ping做h5接入,用的是h5"壹收款"准备:如果公司,现在还没有公众号的话,支付宝。可以把这些工作,给ping来做这些事情 1.注册微信公众号,开通支付功能。2.注册ping (如果是自己开开通的微信支付,要填写相关信息)3.微信设置网页授权获取用户基本信

JFinal极速开发微信公众号

10分钟搭建属于自己的ngork服务器,实现内网穿透(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.csdn.net%2Fzyw_java%2Farticle%2Fdetails%2F70341106)Android微信、支付App支付SDK(http