TP5框架抓取公众号文章,轻松实现!

优采云 发布时间: 2023-03-12 19:13

  作为自媒体从业者,我们时刻关注着新媒体的发展趋势,而微信公众号无疑是其中的佼佼者。在公众号运营过程中,抓取其他公众号的文章是非常重要的一环。那么,在 TP5 框架下,我们该如何实现公众号文章的抓取呢?下面就让我来为大家介绍TP5抓取公众号文章的9个技巧。

  1.确认目标公众号

  在开始抓取公众号文章之前,首先需要确认目标公众号。可以通过微信搜索、相关网站查询等方式获取目标公众号的基本信息。

  2.获取公众号 cookie

  通过模拟登陆微信公众平台获取 cookie 信息,然后使用 cookie 实现对目标公众号的访问。以下代码演示了如何获取 cookie:

  

use QL\QueryList;

$loginUrl ='https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN';

$postData =[

'username'=>'xxx',

'pwd'=> md5('xxx'),

'imgcode'=>'',

'f'=>'json',

];

$ql = QueryList::post($loginUrl,$postData)->getCookies();

  3.获取 token

  通过访问微信公众平台获取 token,然后使用 token 实现对目标公众号文章的抓取。以下代码演示了如何获取 token:

  

  

use QL\QueryList;

$tokenUrl ='https://mp.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET';

$appId ='xxx';

$appSecret ='xxx';

$tokenUrl = str_replace(['APPID','APPSECRET'],[$appId,$appSecret],$tokenUrl);

$ql = QueryList::get($tokenUrl)->getJson();

$token =$ql->access_token;

  4.获取目标公众号文章列表

  通过向微信公众平台发送请求获取目标公众号最新发布的文章列表。以下代码演示了如何获取目标公众号文章列表:

  

use QL\QueryList;

$listUrl ="https://mp.weixin.qq.com/cgi-bin/appmsg?token={$token}&lang=zh_CN&f=json&ajax=1&action=list_ex&type=10&begin=0&count=5&query=&fakeid={$fakeId}&uin=&key=&pass_ticket=&wxtoken=&appmsg_token={$appmsgToken}&x5=0&f=json";

$ql = QueryList::get($listUrl)->getJson();

$articles =$ql['app_msg_list'];

  其中 fakeId 和 appmsgToken 可以从 cookie 中获取。

  5.获取单篇文章内容

  通过向微信公众平台发送请求获取单篇文章内容。以下代码演示了如何获取单篇文章内容:

  

  

use QL\QueryList;

$contentUrl ="https://mp.weixin.qq.com/s?timestamp=".time()."&src=3&ver=1&signature={$signature}&uin={$uin}&key={$key}";

$html = QueryList::get($contentUrl,[],[

CURLOPT_HTTPHEADER =>[

"Referer: https://mp.weixin.qq.com/s/{$mid}",

"Cookie:{$cookie}",

],

])->getHtml();

  其中 signature、uin、key、mid 和 cookie 可以从上一步中获得。

  6.解析 HTML 内容

  将获取到的 HTML 内容解析成可读性更好的文本格式。以下代码演示了如何解析 HTML 内容:

  

use QL\QueryList;

$html ='<html>...</html>';

$content = QueryList::html($html)->find('.rich_media_content')->html();

  7.清理文本内容

  清理文本内容中可能存在的无用信息,例如广告链接、图片等。以下代码演示了如何清理文本内容:

  

  

use QL\QueryList;

$content ='<p>...</p>';

$content = QueryList::html($content)->find('p')->not(':has(img,a)')->text();

  8.存储抓取结果

  将抓取到的结果存储到数据库或文件中进行持久化存储。以下代码演示了如何将结果存储到数据库中:

  

use think\Db;

$data =['title'=>$title,'content'=>$content];

Db::table('articles')->insert($data);

  9.自动化脚本实现

  通过编写自动化脚本实现对目标公众号文章的定时抓取和存储。以下代码演示了如何编写定时任务:

  php

<?php

//定义定时任务

return [

//每小时执行一次

'*/60 ****'=> function (){

//执行抓取任务

//...

},

];

?>

  综上所述,以上就是 TP5 抓取公众号文章的9个技巧。如果你想要进一步优化你的自媒体运营效果,不妨尝试使用优采云进行 SEO 优化,提升你的网站排名和流量吧!更多详情请访问 www.ucaiyun.com 。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线