出家如初,成佛有余

微信公众平台账号内容搜索引擎爬取技术实现

Posted in 技术相关 by chuanliang on 2014/02/23

有人问:游迹语音助手中的“微信精选”和www.lewuxian.com怎样实现对微信公众平台内容进行爬取的,不会是像诸多所谓的微信内容聚合站人工维护的吧。
首先可以肯定的是:游迹团队不是白富美,没有魅力与微信团队勾搭上关系,因此无法获得官方未开放的接口来实现公众号的搜索及爬取。游迹语音助手及www.lewuxian.com中所有与微信公众账号相关的内容都是爬虫自动化完成的,这里大致分享一下思路。
由于微信尚未有公开的搜索接口供第三方的搜索引擎爬取,而且微信也未提供官方权威的微信公众号的导航网站或推荐服务,因此指望完成对所有微信公众号的爬取并不现实,只能对指定微信公众号的内容进行爬取。
因此微信公众号的爬取主要分为如下一些步骤:
第一步就是获得需要爬取的微信公众号列表
微信公众号列表可以参考那些微信导航站的做法,人工维护维护行业精品微信号列表。当然也可以直接爬取那些微信导航站,但质量很差。好在真正高质量值得爬取微信公众号也就至多上万个。
第二部就是要获取每一个微信公众号的内容入口页面。
随便留意一下某个微信公众号,会发现每个微信公众号的“查看历史消息”中有此公众号已发布的所有微信内容,剩下的问题是怎样获取这个地址。
聪明的程序猿们肯定会通过抓包、反编译等手段来获取此入口地址。好消息是要获取此微信公众号的入口地址并不复杂,你会欣喜发现此入口地址是一个普通的网页。坏消息是:当你多测试一下,你会悲剧地发现:
1)、此入口地址并不是固定不变的,一天左右就会变化的,主要是里面的key值。因此指望通过人工手工抓包一劳永逸地获取的地址并无太多实用价值
2)、此入口页面对未关注的用户只能看第一页,需要关注后才能看后续页面,要获取后续页面,只能关注此账号,但要人工关注上万个来自更多账号的关注并不现实
3)、微信对一个账号关注的公众号数是有上限限制的
应对此难题最一劳永逸的方案当然是反编译代码,获取微信的通信协议,但就研究结果来看,成本过高,破解的可能性也不大。游迹团队对此也无兴趣。
剩下比较靠谱、可行的方案就是:怎样在需要爬取时候能够获取指定的微信公众号的入口页面的实际地址,然后去爬取其内容;
那怎样实现以上方案呢?具体的方案,你懂的!
概括一下方案:
1)、获得需要爬取的微信公众号列表
2)、自动化获取微信公众号的入口页面实际地址,实施爬取

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: