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 优化的方法。希望大家能够在实际操作中加以运用,提高自己的技术水平和工作效率。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线