CN105162676A - 一种微信数据获取方法和*** - Google Patents

一种微信数据获取方法和*** Download PDF

Info

Publication number
CN105162676A
CN105162676A CN201510363826.9A CN201510363826A CN105162676A CN 105162676 A CN105162676 A CN 105162676A CN 201510363826 A CN201510363826 A CN 201510363826A CN 105162676 A CN105162676 A CN 105162676A
Authority
CN
China
Prior art keywords
data
micro
letter
android
testing assembly
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510363826.9A
Other languages
English (en)
Other versions
CN105162676B (zh
Inventor
沙灜
包秀国
程工
陈学敏
贺敏
梁棋
马宏远
王卿
庞琳
李雄
刘玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Information Engineering of CAS
National Computer Network and Information Security Management Center
Original Assignee
Institute of Information Engineering of CAS
National Computer Network and Information Security Management Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Information Engineering of CAS, National Computer Network and Information Security Management Center filed Critical Institute of Information Engineering of CAS
Priority to CN201510363826.9A priority Critical patent/CN105162676B/zh
Publication of CN105162676A publication Critical patent/CN105162676A/zh
Application granted granted Critical
Publication of CN105162676B publication Critical patent/CN105162676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种微信数据获取方法和***,通过安卓平台应用测试组件和浏览器测试组件相结合来实现。基于安卓平台测试组件方式,可以模拟用户行为操作客户端,包括登陆、查看、滑屏等;由此方式获取的微信公众平台账号历史消息的网页地址结合主动采集技术,可获取微信公众账号完整的历史消息。采用安卓平台测试组件和浏览器测试组件相结合方式,通过监听浏览器DOM元素变化,能够自动化实现网页版微信登陆,全面和及时有效地获取微信数据。

Description

一种微信数据获取方法和***
技术领域
本发明涉及社交网络数据采集领域,涉及一种微信数据获取方法和***,具体涉及基于安卓平台应用测试组件和浏览器测试组件相结合的微信数据获取方法和***。
背景技术
据统计,中国手机用户超过9亿,截至2011年12月底,中国网民规模达到3.56亿,智能手机网民达1.9亿,同时随着3G时代的到来和智能手机的普及,使用智能手机上网的用户数量呈现出超过使用电脑上网的用户数量的明显趋势。结合快速的3G/4G网络,手机具有高速度、多媒体、个性化的特点,成为人们随身携带便于沟通的交互式工具。
Web2.0技术下的信息传播由于网络的聚合作用而大大加强,促进了新的媒介生态环境的出现。媒体信息也从传统平台转战新媒体,媒体信息发布者对网络和手机的利用也无所不用其极,手机短信、手机微博等媒体信息处处可见。基于手机即时通讯(IM)的媒体信息传播还处于起步发展阶段,但是已经被诸多媒体以及组织个人等关注。
2011年1月21日,腾讯正式推出基于QQ用户的微信。这款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机聊天软件,使用户可以通过微信与好友进行形式上更加丰富的类似于短信、彩信等方式的联系。微信可以说是介于手机QQ和微博之间的第三种社交关系,它正在改变着人们的社交生活方式。在累计经过40多个版本升级后,微信自身形成了一个三维沟通矩阵:X坐标是语音、文字、图片、视频;Y坐标是手机通讯录、智能手机客户端、QQ、微博、邮箱;Z坐标是LBS定位、漂流瓶、摇一摇、二维码识别。纵横交错立体化的社交链,覆盖了工作、生活的多层次需求面,并且在这个三维空间里,各沟通链条完全交叉、各平台互通共享,这是其他IM工具所无法比拟的。
现在面向微信平台的数据获取技术主要有:(1)人工破解客户端,包括通信协议破解,能够快速获取数据,但是同时客户端破解需要较强的逆向工程技术,同时伴随微信版本升级,其安全机制不断升级,存在失效的可能性。破解难度较大,成本过高。(2)Web协议模拟,通过抓包等方式分析网页版微信的通信协议,通过协议模拟达到数据获取的目的,但是从长期实用角度考虑,伴随微信版本升级,存在协议升级改动,协议模拟失效的可能性,长期维护投入成本较大。同时,此方法无法避开人工二维码扫描登陆,在大规模数据采集环境下,需要额外频繁的人工开销。
由于传统的对社交网络数据获取的技术主要是面向PC端社交网络媒体的数据采集,而微信仅提供移动设备平台的客户端和包含基本聊天功能的web方式(其中macOSX平台微信客户端为web方式封装,功能仅包括基本聊天功能),所以对于用户历史消息和资料等信息以及长远考虑更多的消息的获取只能从微信移动设备端出发。
综上,微信由于其安全机制及其本身生态圈的封闭性,对于微信客户端的破解或通信协议的破解成本投入过大且伴随版本升级破解成果难以确保长久有效。
发明内容
为了实现面向微信平台的数据获取,同时保证其数据的相对完整性以及即时性,此外考虑到避免纯网页版获取方式的人工操作,本发明提出了一种微信数据获取方法和***,通过安卓平台应用测试组件和浏览器测试组件相结合来实现。
需要说明的是,安卓平台应用测试组件最初是面向安卓平台app的自动化功能测试,通过安卓开放的接口实现安卓控件的定位和操作。因为app应用可解析为不同控件组成的树状结构。而浏览器测试组件最初面向桌面浏览器的自动化功能测试或压力测试。
为了实现上述目的,本发明通过以下技术方案来实现:
一种微信数据获取方法,是通过将安卓平台应用测试组件和浏览器测试组件相结合分别获取微信非即时数据和即时数据实现的。
考虑到单个app只能同时操作一个界面,故微信非即时数据和即时数据的获取是分别进行的。
获取微信非即时数据包括以下步骤:
1-1)通过任务分配调度机制获取目标公众账号(即欲获取数据的微信公共账号),并进行关注。
1-2)通过安卓平台应用测试组件模拟用户行为操作微信客户端,进入公众账号资料界面,获取账号资料信息。
1-3)由微信公众账号资料界面进入历史消息界面,点击转发,选择发送给朋友,随机选择任意好友,进入确认转发界面,通过定位转发界面的安卓控件,提取历史消息页面地址。
1-4)通过浏览器测试组件打开步骤1-3)提取的历史消息页面地址,加载后获得相应的页面消息数据。
1-5)将上述历史消息页面地址和相应的页面消息数据进行分析和请求链接拼接,获取该微信公众账号所有历史消息。
步骤1-5)的具体过程为:对于获得的历史消息页面地址和页面消息数据,分析得到不同参数的规律,基于此规律进行下一轮请求的格式拼接并向服务器发出申请,不断通过返回的数据进行下一轮请求拼接,实现AJAX通信过程模拟的数据请求,从而获取该微信公众账号所有历史消息。
所述的页面消息数据包括消息ID、精确的发布时间、引用封面的URL、消息的源地址、消息内容等数据。
获取微信即时数据包括以下步骤:
2-1)通过浏览器测试组件打开网页版微信,获取并下载二维码。
2-2)将步骤2-1)下载到的二维码传输给安卓模拟器或安卓真机,然后通过安卓平台应用测试组件打开并登陆微信客户端,客户端自动扫描二维码,从相册获取并选择之前传输过来的二维码,自动扫描二维码并通过确认按钮登陆网页版微信。
2-3)通过浏览器测试组件,监听网页版微信页面DOM元素树节点,快速分析获取微信即时数据。
进一步地,步骤2-2)中通过Android提供的adb工具将步骤2-1)下载到的二维码传输给安卓模拟器或安卓真机。
本发明还提供了一种微信数据获取***,包括安卓平台应用测试组件、浏览器测试组件和数据采集模块;
所述浏览器测试组件用于打开网页版微信,获取并下载二维码,以及监听页面DOM树节点以实现即时信息的获取;
所述安卓平台应用测试组件用于模拟用户行为进行安卓端app二维码扫描和确认登陆操作以实现Web端微信登陆;以及用于模拟用户行为进入公众账号历史消息页面,通过解析转发功能的控件属性,获取公众账号历史消息页面地址,以此地址作为种子,结合历史消息页面元素,拼接得到新的数据请求链接向服务器发起新的数据请求,再通过返回的数据拼接新的数据请求,以此循环,得到该账号全部的历史消息数据;
所述数据采集模块用于将安卓平台测试组件和浏览器测试组件相结合,获取微信即时数据和非即时数据。
进一步地,上述***还包括数据存储模块,用于存储获取的微信即时数据和非即时数据。
本发明的积极效果如下:
基于安卓平台测试组件方式,可以模拟用户行为操作客户端,包括登陆、查看、滑屏等;由此方式获取的微信公众平台账号历史消息的网页地址结合主动采集技术,可获取微信公众账号完整的历史消息。安卓平台测试组件绕开了客户端破解,降低了开发成本以及伴随版本升级可能带来的破解功能失效,同时结合主动采集的方式,能够显著加快消息的获取速度。此外,本方式可获取微信公众平台账号的资料等信息。
1)安卓模拟器下即时消息无法直接通过界面切换获取,需要获取最新历史消息页面URL并通过URL获取最新的消息,由此需要更多的界面点击切换以及为了确保大规模数据获取的即时性,存在维护一张历史消息页面URL表的可能需求,需要的资源消耗过大。基于浏览器测试组件的方式,可以模拟用户行为操作WEB页面,优势在于能够模拟用户行为操作,通过XPath方式定位和操作DOM树以获得数据,同时在后期维护上仅需要根据用户操作进行较小的逻辑改动就可以适应新版本,避免了因为微信版本升级而可能导致的因为原有底层通信协议失效带来的后期维护成本过大的问题。
2)采用安卓平台测试组件和浏览器测试组件相结合方式,通过监听浏览器DOM元素变化,快速获取微信平台即时消息。通过这种方式,能避免纯模拟器安卓移动客户端下消息获取的繁琐步骤,因为在移动客户端下,即时消息的获取无法通过安卓官方或第三方工具直接获取,需要刷新历史消息的网页地址获取,相比直接借助web方式通过页面元素获取数据的方式来说过于繁琐。此外,这种方式能够有效避免登陆网页版微信的人工二维码扫描操作,在大规模数据获取情况下,极大地节约人力资源和额外的硬件设备资源。
综上所述,基于安卓平台应用测试组件和浏览器测试组件相结合的微信数据获取方法与***能够自动化实现网页版微信登陆,全面和及时有效地获取微信数据。
附图说明
图1是本发明实施例中微信数据获取***框架图。
具体实施方式
本发明包括即时消息和非即时消息获取,具体如下:
(一)基于安卓平台应用测试组件的微信非即时消息获取。具体可以分为四个步骤:
a)获取目标账户及关注:通过任务分配调度机制获取目标账户,并判断是否已经关注,因为在未关注的情况下,所能获取的账户历史消息的数量被限制。具体操作为,进入公众账号界面,点击右上角进入公众账号搜索,输入关键词或公众账号id进行搜索,如关键词“冷笑话”,得到搜索结构列表,点击其中一个结果,如“冷笑话精选”,查看是否有“关注”字样,若有,则点击进行关注。
b)微信公众账号资料信息获取:通过安卓平台应用测试组件模拟人工行为操作微信客户端,进入公众账号资料界面,获取账户资料信息。具体操作为,点击已关注公众账号列表的某个公众账号,点击右上角按钮,进入资料界面,通过解析各控件属性获取其公开资料,如功能介绍、类型、官方认证信息等内容。
c)历史消息地址获取:由微信公众账号资料界面进入历史消息界面,由于微信公众账号历史消息界面实际基于安卓默认浏览器内核WebKit实现,无法直接获取消息,通过发送或分享等按钮提取历史消息页面地址。具体操作为,在公众账号资料界面,点击“历史消息”,进入历史消息界面,点击右上角按钮,再点击弹出框中的分享给朋友按钮,任意选择一个好友,弹出一个分享确认框,此时,通过安卓平台测试组件可分析其分享确认框控件属性,得到此公众账号历史消息地址。
d)由步骤c)获取的历史消息页面地址和对获得的页面消息数据进行分析拼接,并通过网页数据获取技术获取该微信公众账号所有历史消息。具体操作为,由上面获得的历史消息地址发出请求,得到该历史消息前20条记录,分析最后一条记录,得到下一次历史消息请求的参数,拼接成之前的请求格式,继续向服务器发出新的数据请求,以此反复,直到判断某一次获取的数据中more字段为false。
(二)基于安卓平台应用测试组件和浏览器测试组件相结合方式的微信即时消息获取,具体可以分为三个步骤:
a)网页版微信打开及二维码下载:受限于安卓平台微信客户端的切换以及消息获取的复杂性,网页版微信获取即时消息更为快速和便捷,网页版微信登陆的唯一方式为二维码扫描登陆,所以通过浏览器测试组件打开网页版微信,获取并下载二维码。
b)二维码传输并扫描:由步骤a)下载的二维码使用安卓官方提供的adb工具通过push命令把二维码传输给安卓模拟器或安卓真机,然后通过安卓平台应用测试组件打开并登陆微信客户端,通过其中扫一扫功能,从相册获取并选择之前传输过来的二维码,客户端将自动扫描二维码。通过确认按钮登陆网页版微信。
c)即时消息获取:通过上一步确认登陆网页版微信以后,继续通过浏览器测试组件,监听DOM元素,假设已有n条记录,则不断查找第n+1条记录的元素,如有,则快速分析获取即时消息。

Claims (8)

1.一种微信数据获取方法,是通过将安卓平台应用测试组件和浏览器测试组件相结合分别获取微信非即时数据和即时数据实现的。
2.如权利要求1所述的微信数据获取方法,其特征在于,获取微信非即时数据包括以下步骤:
1‐1)通过任务分配调度机制获取目标公众账号,并进行关注;
1‐2)通过安卓平台应用测试组件模拟用户行为操作微信客户端,进入公众账号资料界面,获取账号资料信息;
1‐3)由微信公众账号资料界面进入历史消息界面,点击转发,选择发送给朋友,随机选择任意好友,进入确认转发界面,通过定位转发界面的安卓控件,提取历史消息页面地址;
1‐4)通过浏览器测试组件打开步骤1-3)提取的历史消息页面地址,加载后获得相应的页面消息数据;
1‐5)将上述历史消息页面地址和相应的页面消息数据进行分析和请求链接拼接,获取该微信公众账号所有历史消息。
3.如权利要求2所述的微信数据获取方法,其特征在于,步骤1-5)的具体过程为:对于获得的历史消息页面地址和页面消息数据,分析得到不同参数的规律,基于此规律进行下一轮请求的格式拼接并向服务器发出申请,不断通过返回的数据进行下一轮请求拼接,实现AJAX通信过程模拟的数据请求,从而获取该微信公众账号所有历史消息。
4.如权利要求2所述的微信数据获取方法,其特征在于,所述的页面消息数据包括消息ID、精确的发布时间、引用封面的URL、消息的源地址和消息内容。
5.如权利要求1所述的微信数据获取方法,其特征在于,获取微信即时数据包括以下步骤:
2‐1)通过浏览器测试组件打开网页版微信,获取并下载二维码;
2‐2)将步骤2-1)下载到的二维码传输给安卓模拟器或安卓真机,然后通过安卓平台应用测试组件打开并登陆微信客户端,客户端自动扫描二维码,从相册获取并选择之前传输过来的二维码,自动扫描二维码并通过确认按钮登陆网页版微信;
2‐3)通过浏览器测试组件,监听网页版微信页面DOM元素树节点,快速分析获取微信即时数据。
6.如权利要求5所述的微信数据获取方法,其特征在于,步骤2-2)中通过Android提供的adb工具将步骤2-1)下载到的二维码传输给安卓模拟器或安卓真机。
7.一种微信数据获取***,包括安卓平台应用测试组件、浏览器测试组件和数据采集模块;
所述浏览器测试组件用于打开网页版微信,获取并下载二维码,以及监听页面DOM树节点以实现即时信息的获取;
所述安卓平台应用测试组件用于模拟用户行为进行安卓端app二维码扫描和确认登陆操作以实现Web端微信登陆;以及
用于模拟用户行为进入公众账号历史消息页面,通过解析转发功能的控件属性,获取公众账号历史消息页面地址,以此地址作为种子,结合历史消息页面元素,拼接得到新的数据请求链接向服务器发起新的数据请求,再通过返回的数据拼接新的数据请求,以此循环,得到该账号全部的历史消息数据;
所述数据采集模块用于将安卓平台测试组件和浏览器测试组件相结合,获取微信即时数据和非即时数据。
8.如权利要求7所述的微信数据获取***,其特征在于,还包括数据存储模块,用于存储获取的微信即时数据和非即时数据。
CN201510363826.9A 2015-04-03 2015-06-26 一种微信数据获取方法和*** Active CN105162676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510363826.9A CN105162676B (zh) 2015-04-03 2015-06-26 一种微信数据获取方法和***

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510156229 2015-04-03
CN2015101562299 2015-04-03
CN201510363826.9A CN105162676B (zh) 2015-04-03 2015-06-26 一种微信数据获取方法和***

Publications (2)

Publication Number Publication Date
CN105162676A true CN105162676A (zh) 2015-12-16
CN105162676B CN105162676B (zh) 2017-08-11

Family

ID=54803436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510363826.9A Active CN105162676B (zh) 2015-04-03 2015-06-26 一种微信数据获取方法和***

Country Status (1)

Country Link
CN (1) CN105162676B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429865A (zh) * 2015-12-31 2016-03-23 深圳中泓在线股份有限公司 一种基于浏览器的微信公众号数据采集方法及装置
CN106302407A (zh) * 2016-08-02 2017-01-04 四川秘无痕信息安全技术有限责任公司 一种监控微信朋友圈发送数据的方法
CN107644021A (zh) * 2016-07-20 2018-01-30 北大方正集团有限公司 信息采集方法和信息采集装置
CN110188257A (zh) * 2019-04-16 2019-08-30 国家计算机网络与信息安全管理中心 一种移动应用数据采集方法及装置
CN110505072A (zh) * 2019-09-27 2019-11-26 连尚(新昌)网络科技有限公司 用于备份聊天记录的方法、终端设备和计算机可读介质
CN110958282A (zh) * 2018-09-27 2020-04-03 长沙博为软件技术股份有限公司 一种基于网络通讯技术实现网页版微信模拟人工推送消息的方法
CN112737925A (zh) * 2020-12-29 2021-04-30 深圳前海微众银行股份有限公司 数据采集方法、装置和***
CN113037925A (zh) * 2021-04-15 2021-06-25 维沃移动通信有限公司 信息处理方法、信息处理装置、电子设备和可读存储介质
CN113722631A (zh) * 2020-05-20 2021-11-30 ***通信集团河北有限公司 页面合成方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200804B1 (en) * 1998-12-08 2007-04-03 Yodlee.Com, Inc. Method and apparatus for providing automation to an internet navigation application
CN101221572A (zh) * 2008-01-25 2008-07-16 吴坤达 一种网页数据处理***
CN102014078A (zh) * 2010-09-28 2011-04-13 苏州阔地网络科技有限公司 一种网页上实现的基于flash的即时通讯的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200804B1 (en) * 1998-12-08 2007-04-03 Yodlee.Com, Inc. Method and apparatus for providing automation to an internet navigation application
CN101221572A (zh) * 2008-01-25 2008-07-16 吴坤达 一种网页数据处理***
CN102014078A (zh) * 2010-09-28 2011-04-13 苏州阔地网络科技有限公司 一种网页上实现的基于flash的即时通讯的方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429865A (zh) * 2015-12-31 2016-03-23 深圳中泓在线股份有限公司 一种基于浏览器的微信公众号数据采集方法及装置
CN107644021A (zh) * 2016-07-20 2018-01-30 北大方正集团有限公司 信息采集方法和信息采集装置
CN106302407A (zh) * 2016-08-02 2017-01-04 四川秘无痕信息安全技术有限责任公司 一种监控微信朋友圈发送数据的方法
CN106302407B (zh) * 2016-08-02 2019-05-17 四川秘无痕信息安全技术有限责任公司 一种监控微信朋友圈发送数据的方法
CN110958282A (zh) * 2018-09-27 2020-04-03 长沙博为软件技术股份有限公司 一种基于网络通讯技术实现网页版微信模拟人工推送消息的方法
CN110188257A (zh) * 2019-04-16 2019-08-30 国家计算机网络与信息安全管理中心 一种移动应用数据采集方法及装置
CN110505072A (zh) * 2019-09-27 2019-11-26 连尚(新昌)网络科技有限公司 用于备份聊天记录的方法、终端设备和计算机可读介质
CN110505072B (zh) * 2019-09-27 2021-05-25 连尚(新昌)网络科技有限公司 用于备份聊天记录的方法、终端设备和计算机可读介质
CN113722631A (zh) * 2020-05-20 2021-11-30 ***通信集团河北有限公司 页面合成方法及装置
CN113722631B (zh) * 2020-05-20 2023-11-21 ***通信集团河北有限公司 页面合成方法及装置
CN112737925A (zh) * 2020-12-29 2021-04-30 深圳前海微众银行股份有限公司 数据采集方法、装置和***
CN112737925B (zh) * 2020-12-29 2024-06-14 深圳前海微众银行股份有限公司 数据采集方法、装置和***
CN113037925A (zh) * 2021-04-15 2021-06-25 维沃移动通信有限公司 信息处理方法、信息处理装置、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN105162676B (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN105162676A (zh) 一种微信数据获取方法和***
US9645910B1 (en) Cross platform mobile HTML debugging
US9652364B1 (en) Cloud service for mobile testing and debugging
US10623551B2 (en) Method and apparatus for processing contact information using a wireless terminal
CN109936621B (zh) 信息安全的多页面消息推送方法、装置、设备及存储介质
CN105045887A (zh) 混合模式跨域数据交互的***及其方法
CN111371741B (zh) 外网数据传输至内网方法、装置、计算机设备及存储介质
TW201914263A (zh) 通訊方法、信息共享方法及裝置
US9357366B2 (en) Auditing of mobile applications
CN104732182B (zh) 在网页上基于二维码的通信方法
CN103313289A (zh) Wap***自动化测试***和方法
US10324706B1 (en) Automated software deployment for electromechanical systems
CN107846344B (zh) 即时通讯工具中的批量推送消息的方法、装置及电子设备
CN103763358A (zh) 一种信息的推送方法和装置
CN112528179A (zh) 二维码的处理方法、***、电子设备和存储介质
US20120284348A1 (en) System and method for social interactivity while using an e-book reader
CN115065652A (zh) 消息回复方法、装置、存储介质及计算机设备
CN105095070B (zh) 基于浏览器测试组件的qq群数据获取方法与***
CN111934985B (zh) 媒体内容的分享方法、装置、设备及计算机可读存储介质
CN107423446B (zh) 基于云存储的新媒体自动化可信部署***和方法
CN112422402A (zh) 消息转发的溯源方法、装置、存储介质以及终端
US10068250B2 (en) System and method for measuring mobile advertising and content by simulating mobile-device usage
CN115118687B (zh) 消息推送方法、装置、存储介质及计算机设备
CN116346660A (zh) 基于依赖替换服务的数据处理方法、装置、设备及介质
CN112817816B (zh) 埋点处理方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant