PHP轻松抓取公众号文章,实现采集!
优采云 发布时间: 2023-05-07 21:55在自媒体时代,公众号已成为了一个非常重要的平台。但是,如何获取公众号中的文章,成为了许多人关注的问题。本文将介绍如何使用 PHP 抓取公众号文章,并且通过优采云进行 SEO 优化,帮助你轻松实现文章采集。
一、获取公众号历史文章列表
首先,我们需要获取公众号历史文章列表。这个可以通过微信公众平台提供的 API 接口来实现。我们只需要向接口发送请求,并且传递相应的参数即可。
代码示例:
<?php
$url ="https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MjM5NTM1MTA2MA==&f=json&offset=0&count=10&is_ok=1&scene=124&uin=777&key=777";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');
$b311cc12441f1b8803b511e0e1c71fb6= curl_exec($ch);
curl_close($ch);
echo $output;
?>
在这里,我们使用了 cURL 库来发送请求,并且使用 cookie 来模拟用户登录状态。其中,__biz 参数是公众号的唯一标识符,offset 和 count 参数用于分页显示。
二、解析历史文章列表
获取到历史文章列表后,我们需要对其进行解析。这个可以通过正则表达式来实现。我们只需要根据 HTML 标签结构,提取出文章的 URL 和标题即可。
代码示例:
<?php
preg_match_all('/<a href="(.*?)".*?title="(.*?)"/',$output,$9c28d32df234037773be184dbdafc274);
var_b9ef165b255673dde47bff07f4390fb1($9c28d32df234037773be184dbdafc274);
?>
在这里,我们使用了 preg_match_all 函数来匹配 HTML 标签,并且使用了正则表达式来提取 URL 和标题。
三、获取单篇文章内容
获取到文章列表后,我们需要获取每篇文章的具体内容。这个可以通过抓取文章页面来实现。同样的,我们只需要向接口发送请求,并且传递相应的参数即可。
代码示例:
<?php
$url ="https://mp.weixin.qq.com/s?__biz=MjM5NTM1MTA2MA==&mid=2650423963&idx=1&sn=bd5c0d6c9d3ef4c6b8f0d7f1a4e6c6d0&chksm=be9e43fa89e9caecf11f91f3b8f2e67d7cc8ee4ceffaa8a58dd20005b6ab3e0f73c2f8e31007#rd";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');
$b311cc12441f1b8803b511e0e1c71fb6= curl_exec($ch);
curl_close($ch);
echo $output;
?>
在这里,我们同样使用了 cURL 库来发送请求,并且使用 cookie 来模拟用户登录状态。其中,__biz 和 mid 参数是文章的唯一标识符。
四、解析单篇文章内容
获取到单篇文章内容后,我们需要对其进行解析。这个可以通过正则表达式来实现。我们只需要根据 HTML 标签结构,提取出文章的标题、作者、发布时间和正文内容即可。
代码示例:
<?php
preg_match('/<title>(.*?)<\/title>/',$output,$title);
preg_match('/var nickname ="(.*?)";/',$output,$author);
preg_match('/<em id="publish_time">(.*?)<\/em>/',$output,$time);
preg_match('/<div class="e7f4f8bd246c235418280d1f124e14f0_media_content " id="js_content">(.*?)<\/div>/',$output,$content);
var_b9ef165b255673dde47bff07f4390fb1($title,$author,$time,$content);
?>
在这里,我们使用了 preg_match 函数来匹配 HTML 标签,并且使用了正则表达式来提取标题、作者、发布时间和正文内容。
五、存储文章数据
获取到文章数据后,我们需要将其存储到数据库中。这个可以通过 MySQL 数据库来实现。我们只需要创建相应的表结构,并且使用 INSERT INTO 语句将数据插入到数据库中即可。
代码示例:
<?php
$conn = mysqli_connect("localhost","root","","wechat");
mysqli_query($conn,"SET NAMES utf8");
mysqli_query($conn,"CREATE TABLE IF NOT EXISTS articles (
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
time DATETIME NOT NULL,
content TEXT NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
mysqli_query($conn,"INSERT INTO articles (title, author, time, content) VALUES ('$title[1]','$author[1]','$time[1]','$content[1]')");
mysqli_close($conn);
?>
在这里,我们使用了 mysqli_connect 函数来连接 MySQL 数据库,并且使用了 CREATE TABLE 和 INSERT INTO 语句来创建表结构和插入数据。
六、实现分页显示
获取到文章列表后,我们需要实现分页显示。这个可以通过修改 offset 和 count 参数来实现。我们只需要将文章列表分成若干个页面,并且提供相应的翻页功能即可。
代码示例:
<?php
$page = isset($_GET['page'])?$_GET['page']:1;
$count = 10;
$offset =($page -1)*$count;
$url ="https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MjM5NTM1MTA2MA==&f=json&offset=$offset&count=$count&is_ok=1&scene=124&uin=777&key=777";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');
$b311cc12441f1b8803b511e0e1c71fb6= curl_exec($ch);
curl_close($ch);
preg_match_all('/<a href="(.*?)".*?title="(.*?)"/',$output,$9c28d32df234037773be184dbdafc274);
foreach ($9c28d32df234037773be184dbdafc274[1] as $key =>$value){
echo "<a href='article.php?url=$value'>".$9c28d32df234037773be184dbdafc274[2][$key]."</a><br/>";
}
?>
在这里,我们使用了$_GET 变量来获取当前页码,并且使用了 offset 和 count 参数来实现分页显示。其中,$url 变量是根据参数生成的请求地址。
七、优采云 SEO 优化
获取到文章列表后,我们需要对其进行 SEO 优化。这个可以通过优采云来实现。我们只需要将文章内容提交到优采云平台,并且按照相应的规则进行优化即可。
代码示例:
<?php
require_once('ucaiyun.php');
$ucaiyun = new Ucaiyun();
$result =$ucaiyun->submit("PHP 抓取公众号,轻松实现文章采集",$content[1],"https://www.ucaiyun.com");
var_b9ef165b255673dde47bff07f4390fb1($result);
?>
在这里,我们使用了 Ucaiyun 类库来提交文章内容,并且使用了 submit 函数来提交数据。其中,第一个参数是文章标题,第二个参数是文章内容,第三个参数是文章链接。
八、安全问题
在抓取公众号文章时,我们需要注意一些安全问题。例如,不要过于频繁地访问接口,否则可能会被封禁 IP;不要泄露自己的账号密码,否则可能会被盗取资料。
九、总结
通过本文的介绍,相信大家已经掌握了如何使用 PHP 抓取公众号文章,并且通过优采云进行 SEO 优化的方法。希望大家能够在实际操作中加以运用,提高自己的技术水平和工作效率。