PHP轻松获取微信公众号文章内容,教你一步步操作
优采云 发布时间: 2023-03-27 09:18微信公众号是现在社会上非常流行的一种媒体形式,通过这种方式可以让人们快速的了解到各种信息。但是,有些时候我们需要获取某篇文章的具体内容,而微信公众号并没有提供这样的API。那么,该怎么办呢?在这篇文章中,我们将介绍如何使用PHP来获取微信公众号文章内容。
1.确定要获取的文章链接
首先,我们需要确定要获取哪篇文章的内容。可以通过打开该文章,在地址栏中复制该文章的链接来获取。例如,我们要获取一篇名为“PHP获取微信公众号文章内容”的文章,其链接为:https://mp.weixin.qq.com/s/XXXXXXXXXXXXX
2.获取微信公众号cookie
在PHP中发起HTTP请求需要带上cookie,所以我们需要先获取微信公众号cookie。可以通过以下步骤来获取:
-在浏览器中打开任意一个已登录的微信公众号;
-按下F12打开开发者工具;
-选择Network标签页;
-点击左上角的Preserve log选项;
-刷新页面并找到一条名为mp.weixin.qq.com的请求;
-在该请求的Header中找到Cookie字段,并复制其中的内容。
3.发起HTTP请求
通过PHP内置函数file_get_contents()可以发起HTTP请求,并且可以带上cookie。代码如下:
$cookie ='xxxxxx';//填入上一步获取的cookie
$url ='https://mp.weixin.qq.com/s/XXXXXXXXXXXXX';//填入要获取的文章链接
$options =[
'http'=>[
'header'=>"Cookie:$cookie\r\n",
'method'=>'GET',
'timeout'=>3,
],
];
$content = file_get_contents($url, false, stream_context_create($options));
4.解析HTML内容
通过PHP内置扩展SimpleXML可以非常方便地解析HTML内容。代码如下:
$html = new SimpleXMLElement($content);
$title =$html->xpath('//h2[@class="rich_media_title"]/text()')[0];//获取文章标题
$author =$html->xpath('//a[@id="js_name"]/text()')[0];//获取公众号名称
$time =$html->xpath('//em[@id="publish_time"]/text()')[0];//获取发布时间
$content ='';
foreach ($html->xpath('//div[@class="rich_media_content"]/*') as $node){//获取文章正文内容
if ($node->getName()==='p'){
$content .='<p>'.$node->asXML().'</p>';
} elseif ($node->getName()==='section'){
foreach ($node->xpath('./*') as $subNode){
if ($subNode->getName()==='p'){
$content .='<p>'.$subNode->asXML().'</p>';
}
}
}
}
5.输出结果
最后,我们可以将获取到的文章信息输出到页面上。代码如下:
echo "<h1>$title</h1>";
echo "<p>作者:$author</p>";
echo "<p>发布时间:$time</p>";
echo $content;
这样,我们就可以通过PHP获取微信公众号文章内容了。如果你需要更详细的代码实现,可以参考优采云官网(www.ucaiyun.com)上的相关教程。同时,还可以使用优采云提供的SEO优化方案来提升你的文章排名。