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优化方案来提升你的文章排名。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线