一种微信数据获取方法和系统的制作方法

文档序号:8945652阅读:1652来源:国知局
一种微信数据获取方法和系统的制作方法
【技术领域】
[0001]本发明涉及社交网络数据采集领域,涉及一种微信数据获取方法和系统,具体涉及基于安卓平台应用测试组件和浏览器测试组件相结合的微信数据获取方法和系统。
【背景技术】
[0002]据统计,中国手机用户超过9亿,截至2011年12月底,中国网民规模达到3.56亿,智能手机网民达1.9亿,同时随着3G时代的到来和智能手机的普及,使用智能手机上网的用户数量呈现出超过使用电脑上网的用户数量的明显趋势。结合快速的3G/4G网络,手机具有高速度、多媒体、个性化的特点,成为人们随身携带便于沟通的交互式工具。
[0003]Web2.0技术下的信息传播由于网络的聚合作用而大大加强,促进了新的媒介生态环境的出现。媒体信息也从传统平台转战新媒体,媒体信息发布者对网络和手机的利用也无所不用其极,手机短信、手机微博等媒体信息处处可见。基于手机即时通讯(IM)的媒体信息传播还处于起步发展阶段,但是已经被诸多媒体以及组织个人等关注。
[0004]2011年I月21日,腾讯正式推出基于QQ用户的微信。这款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机聊天软件,使用户可以通过微信与好友进行形式上更加丰富的类似于短信、彩信等方式的联系。微信可以说是介于手机QQ和微博之间的第三种社交关系,它正在改变着人们的社交生活方式。在累计经过40多个版本升级后,微信自身形成了一个三维沟通矩阵:X坐标是语音、文字、图片、视频;¥坐标是手机通讯录、智能手机客户端、QQ、微博、邮箱;Z坐标是LBS定位、漂流瓶、摇一摇、二维码识别。纵横交错立体化的社交链,覆盖了工作、生活的多层次需求面,并且在这个三维空间里,各沟通链条完全交叉、各平台互通共享,这是其他IM工具所无法比拟的。
[0005]现在面向微信平台的数据获取技术主要有:(I)人工破解客户端,包括通信协议破解,能够快速获取数据,但是同时客户端破解需要较强的逆向工程技术,同时伴随微信版本升级,其安全机制不断升级,存在失效的可能性。破解难度较大,成本过高。(2)Web协议模拟,通过抓包等方式分析网页版微信的通信协议,通过协议模拟达到数据获取的目的,但是从长期实用角度考虑,伴随微信版本升级,存在协议升级改动,协议模拟失效的可能性,长期维护投入成本较大。同时,此方法无法避开人工二维码扫描登陆,在大规模数据采集环境下,需要额外频繁的人工开销。
[0006]由于传统的对社交网络数据获取的技术主要是面向PC端社交网络媒体的数据采集,而微信仅提供移动设备平台的客户端和包含基本聊天功能的web方式(其中macOSX平台微信客户端为web方式封装,功能仅包括基本聊天功能),所以对于用户历史消息和资料等信息以及长远考虑更多的消息的获取只能从微信移动设备端出发。
[0007]综上,微信由于其安全机制及其本身生态圈的封闭性,对于微信客户端的破解或通信协议的破解成本投入过大且伴随版本升级破解成果难以确保长久有效。

【发明内容】

[0008]为了实现面向微信平台的数据获取,同时保证其数据的相对完整性以及即时性,此外考虑到避免纯网页版获取方式的人工操作,本发明提出了一种微信数据获取方法和系统,通过安卓平台应用测试组件和浏览器测试组件相结合来实现。
[0009]需要说明的是,安卓平台应用测试组件最初是面向安卓平台app的自动化功能测试,通过安卓开放的接口实现安卓控件的定位和操作。因为app应用可解析为不同控件组成的树状结构。而浏览器测试组件最初面向桌面浏览器的自动化功能测试或压力测试。
[0010]为了实现上述目的,本发明通过以下技术方案来实现:
[0011]—种微信数据获取方法,是通过将安卓平台应用测试组件和浏览器测试组件相结合分别获取微信非即时数据和即时数据实现的。
[0012]考虑到单个app只能同时操作一个界面,故微信非即时数据和即时数据的获取是分别进行的。
[0013]获取微信非即时数据包括以下步骤:
[0014]1-1)通过任务分配调度机制获取目标公众账号(即欲获取数据的微信公共账号),并进行关注。
[0015]1-2)通过安卓平台应用测试组件模拟用户行为操作微信客户端,进入公众账号资料界面,获取账号资料信息。
[0016]1-3)由微信公众账号资料界面进入历史消息界面,点击转发,选择发送给朋友,随机选择任意好友,进入确认转发界面,通过定位转发界面的安卓控件,提取历史消息页面地址。
[0017]1-4)通过浏览器测试组件打开步骤1-3)提取的历史消息页面地址,加载后获得相应的页面消息数据。
[0018]1-5)将上述历史消息页面地址和相应的页面消息数据进行分析和请求链接拼接,获取该微信公众账号所有历史消息。
[0019]步骤1-5)的具体过程为:对于获得的历史消息页面地址和页面消息数据,分析得到不同参数的规律,基于此规律进行下一轮请求的格式拼接并向服务器发出申请,不断通过返回的数据进行下一轮请求拼接,实现AJAX通信过程模拟的数据请求,从而获取该微信公众账号所有历史消息。
[0020]所述的页面消息数据包括消息ID、精确的发布时间、引用封面的URL、消息的源地址、消息内容等数据。
[0021]获取微信即时数据包括以下步骤:
[0022]2-1)通过浏览器测试组件打开网页版微信,获取并下载二维码。
[0023]2-2)将步骤2-1)下载到的二维码传输给安卓模拟器或安卓真机,然后通过安卓平台应用测试组件打开并登陆微信客户端,客户端自动扫描二维码,从相册获取并选择之前传输过来的二维码,自动扫描二维码并通过确认按钮登陆网页版微信。
[0024]2-3)通过浏览器测试组件,监听网页版微信页面DOM元素树节点,快速分析获取微信即时数据。
[0025]进一步地,步骤2-2)中通过Android提供的adb工具将步骤2_1)下载到的二维码传输给安卓模拟器或安卓真机。
[0026]本发明还提供了一种微信数据获取系统,包括安卓平台应用测试组件、浏览器测试组件和数据采集模块;
[0027]所述浏览器测试组件用于打开网页版微信,获取并下载二维码,以及监听页面DOM树节点以实现即时信息的获取;
[0028]所述安卓平台应用测试组件用于模拟用户行为进行安卓端app 二维码扫描和确认登陆操作以实现Web端微信登陆;以及用于模拟用户行为进入公众账号历史消息页面,通过解析转发功能的控件属性,获取公众账号历史消息页面地址,以此地址作为种子,结合历史消息页面元素,拼接得到新的数据请求链接向服务器发起新的数据请求,再通过返回的数据拼接新的数据请求,以此循环,得到该账号全部的历史消息数据;
[0029]所述数据采集模块用于将安卓平台测试组件和浏览器测试组件相结合,获取微信即时数据和非即时数据。
[0030]进一步地,上述系统还包括数据存储模块,用于存储获取的微信即时数据和非即时数据。
[0031]本发明的积极效果如下:
[0032]基于安卓平台测试组件方式,可以模拟用户行为操作客户端,包括登陆、查看、滑屏等;由此方式获取的微信公众平台账号历史消息的网页地址结合主动采集技术,可获取微信公众账号完整的历史消息。安卓平台测试组件绕开了客户端破解,降低了开发成本以及伴随版本升级可能带来的破解功能失效,同时结合主动采集的方式,能够显著加快消息的获取速度。此外,本方式可获取微信公众平台账号的资料等信息。
[0033]I)安卓模拟器下即时消息无法直接通过界面切换获取,需要获取最新历史消息页面URL并通过URL获取最新的消息,由此需要更多的界面点击切换以及为了确保大规模数据获取的即时性,存在维护一张历史消息页面URL表的可能需求,需要的资源消耗过大。基于浏览器测试组件的方式,可以模拟用户行为操作WEB页面,优势在于能够模拟用户行为操作,通过XPath方式定位和操作DOM树以获得数据,同时在后期维护上仅需要根据用户操作进行较小的逻辑改动就可以适应新版本,避免了因
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1