重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“怎么用PHP代码采集微信公众号的文章”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的亳州网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!通过搜狗搜索采集公众号历史消息有几个问题:
1、有验证码;
2、历史消息列表只有最近10条群发内容;
3、文章地址是有有效期的;
4、据说批量采集还要换ip;
通过我前面文章的方法就没有这些问题,虽然采集系统搭建不如传统采集器写个规则去爬就可以了那么简单。但是一次搭建好之后批量采集的效率还是可以的。而且采集的文章地址是永久有效的,并且可以采集到一个公众号所有的历史消息。
我们还是从一个公众号文章的链接地址开始看:
1、从微信右上角菜单复制到的链接地址:
http://mp.weixin.qq.com/s/fF34bERZ0je_8RWEJjoZ5A
2、历史消息列表中获取到的地址:
http://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA==&mid=2695729619&idx=1&sn=8be0b6bd0210cee0d492ebdf20f7371f&chksm=83d74818b4a0c10ef286b33bb7deb73226125f866ddb5b2781166066a69afef3705eabdb3b85&scene=4#wechat_redirect
3、完整的真实地址:
https://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA==&mid=2695729619&idx=1&sn=8be0b6bd0210cee0d492ebdf20f7371f&chksm=83d74818b4a0c10ef286b33bb7deb73226125f866ddb5b2781166066a69afef3705eabdb3b85&scene=37&key=c81d77271180a0e6ce32be2d9dcaa2a7436aeba2c1d47a20d02194d1c944a8286a8eded93495eeadd05da412bbfaa638a379750aeaa4cf5c00e4d7851c5710d9b9736b80e3c72770a57a515c23ff2400&ascene=3&uin=MzUyOTIyNQ%3D%3D&devicetype=iOS10.1.1&version=16050120&nettype=WIFI&fontScale=100&pass_ticket=FGRyGfXLPEa4AeOsIZu7KFJo6CiXOZex83Y5YBRglW4%3D&wx_header=1
以上这3个地址是同一篇文章的地址,在不同位置获取到就得到了完全不同的3个结果。
和历史消息页一样,微信有一套自动补充参数的机制。第一个地址是复制链接得到的,看起来是一个伪装的编码。其实没什么用我们不做考虑了。第二个地址是通过前面文章介绍的方法,从历史消息的json文章列表中获得到的链接地址,我们就是可以将这个地址保存到数据库中。之后就可以通过这个地址从服务器获取到文章内容。而第三个链接补充了参数之后,目的是为了让文章页面中的阅读量js可以获取到阅读量点赞量的json结果而加上的参数。我们前面文章的方法中因为文章页面被客户端打开显示了出来,因为有了这些参数,文章页面中的js就去自动获取阅读量了,所以我们才能通过代理服务获取到这篇文章的阅读量。
这篇文章的内容就是以通过本专栏前面文章介绍的方法已经获取到了大量微信文章的基础上,详细研究如何获取到文章内容和其它一些有用的信息的方法。
(我的数据库中保存的文章列表,一部分字段)
1、获取文章源代码:
通过php的函数file_get_content()就可以将文章源代码读取到变量中。微信文章的源代码因为可以从浏览器中打开所以我就不在这里粘贴了,以免浪费页面空间。
//$content_url 变量的值为文章地址 $html = file_get_contents($content_url); ?>
2、源代码中有用的信息:
1)原文内容:
原文内容是包含在一个
标签中的,通过php代码获取:preg_match_all("/id=\"js_content\">(.*)