DDR爱好者之家 Design By 杰米

通过搜狗搜索采集公众号历史消息有几个问题:

1、有验证码;

2、历史消息列表只有最近10条群发内容;

3、文章地址是有有效期的;

4、据说批量采集还要换ip;

通过我前面文章的方法就没有这些问题,虽然采集系统搭建不如传统采集器写个规则去爬就可以了那么简单。但是一次搭建好之后批量采集的效率还是可以的。而且采集的文章地址是永久有效的,并且可以采集到一个公众号所有的历史消息。
我们还是从一个公众号文章的链接地址开始看:

1、从微信右上角菜单复制到的链接地址:

http://mp.weixin.qq.com/s/fF34bERZ0je_8RWEJjoZ5A

2、历史消息列表中获取到的地址:

http://mp.weixin.qq.com/s"//img.jbzj.com/file_images/article/201712/201712041037003.jpg" alt="" />

(我的数据库中保存的文章列表,一部分字段)

1、获取文章源代码:

通过php的函数file_get_content()就可以将文章源代码读取到变量中。微信文章的源代码因为可以从浏览器中打开所以我就不在这里粘贴了,以免浪费页面空间。

<"color: #ff0000">2、源代码中有用的信息: 

1)原文内容:

原文内容是包含在一个<div id='js_content'></div>标签中的,通过php代码获取:

<"/id=\"js_content\">(.*)<script/iUs",$html,$content,PREG_PATTERN_ORDER);
$content = "<div id='js_content'>".$content[1][0];
"htmlcode">
<"data-src","src",$content);
"htmlcode">
<"preview.html","player.html",$content);
"htmlcode">
<"(.*";/si',$html,$m);
$nickname = $m[1][0];//公众号昵称
preg_match_all('/var round_head_img = \"(.*";/si',$html,$m);
$head_img = $m[1][0];//公众号头像
"color: #ff0000">3、文章的保存和处理

前面的代码已经将文章内容获取到变量中了。如何保存其实每个人也许都有自己的想法。我这里介绍一下我的保存内容的方法:

将文章内容的html以数据库id为文件名保存成html文件,以biz字段为目录。

<"./".$biz."/";
$filename = $dir.$id.".html";
if(!is_dir($dir)) {
  mkdir($cache_dir);
  chmod($cache_dir,0777);
}
$file = fopen($filename, "w");
fwrite($file, $content);
fclose($file);
?>

以上代码是一个标准的php建立文件夹保存文件的代码,大家可以根据自己的实际情况安排保存方法。

在这之后我们就可以在自己的服务器上得到一个html文件,内容就是公众号的文章内容。我们可以从浏览器中打开看一下。这时你也许会发现图片防盗链了!无法正常显示!包括数据库中保存的文章封面图,公众号的头像都是防盗链的。

别急,这个问题很好解决,只需要将图片也保存到自己的服务器,无非是将来会占用自己的服务器空间和带宽。

图片防盗链的原理是当图片在网页中显示的时候,图片服务器会检测到引用这张图片的服务器域名,当发现服务器域名不包含http://qq.com或http://qpic.cn的时候就会被替换成防盗链图片。

但是如果检测不到引用页面的域名就会正常显示,所以我们通过php的函数file_get_content()就可以将图片的二进制代码获取过来,然后根据自己的想法起个文件名保存到自己的服务器上。在这里再介绍一个保存图片的方法,我目前使用了腾讯云的“万象优图”,通过它们提供的api将图片保存到云空间,这样的好处是读取图片时直接在图片的链接地址加上希望得到的图片尺寸大小参数,就可以直接得到一张缩略图。比存在自己的服务器方便得多。阿里云也应该有同样的产品,好像名叫对象存储。

另外,我采集公众号内容的目的是制作成一个新闻app,在app中将html代码显示出来之后,因为app同样没有域名,防盗链服务器也同样不会认为图片被盗链了。这样就可以直接显示图片出来。

以上就是我总结的公众号文章内容的采集与存储方法,希望能够帮到你。

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。