CN103365919A - 网页解析容器及方法 - Google Patents
网页解析容器及方法 Download PDFInfo
- Publication number
- CN103365919A CN103365919A CN2012101018234A CN201210101823A CN103365919A CN 103365919 A CN103365919 A CN 103365919A CN 2012101018234 A CN2012101018234 A CN 2012101018234A CN 201210101823 A CN201210101823 A CN 201210101823A CN 103365919 A CN103365919 A CN 103365919A
- Authority
- CN
- China
- Prior art keywords
- webpage
- script
- event
- version
- dynamic
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种网页解析容器及方法,所述网页解析容器包括一网页下载模块,用于向一网站服务器发送多次请求,以获得一网页的一html文本;一检测模块,用于检测出所述html文本中的html的版本以及至少一个动态脚本触发事件的动态脚本的版本及分类;一脚本解析模块,用于调用与动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件;一页面渲染模块,用于调用一与检测出的html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。本发明能够实现对包括有客户端动态脚本的比较复杂的网页的采集以及解析,并能够得到网页中的所有内容,提高了网页采集的精细度和成功率。
Description
技术领域
本发明涉及一种网页解析容器及方法,特别是涉及一种能够采集并解析包括有客户端动态脚本的网页的网页解析容器以及利用所述网页解析容器实现的网页解析方法。
背景技术
随着互联网的高速发展,出现了各式各样的网站,而很多网站中都包括有许多展示效果非常绚丽、用户操作体验很好的网页,这些网页都大量地使用了javascript、vbscript、jscript(上述javascript、vbscript、jscript均为现有技术中常用的的客户端脚本语言)等客户端动态脚本技术,这些动态脚本技术应用非常广泛,也使得原本简单的html(超文本标记语言)网页变得非常复杂、非常难以提取。
传统的网页信息采集技术,是通过程序模拟http(超文本传输协议)请求,向网站服务器取得html内容,解析html内容后就可以提取网页信息。但是这种方法是有弊端的:上述的方法只能适用于传统的不含有客户端动态脚本的网页,当网页内容是由一个或多个上述的客户端动态脚本运行后动态生成时,利用上述方法就无法直接采集到全部的网页内容,导致无法得到由客户端动态脚本运行所产生的运行结果和内容。
发明内容
本发明要解决的技术问题是为了克服现有技术中传统的网页采集方法无法采集到包括有客户端动态脚本运行后产生的运行结果及内容的缺陷,提供一种能够采集并解析包括有客户端动态脚本的网页的网页解析容器以及利用所述网页解析容器实现的网页解析方法。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种网页解析容器,其特点在于,其包括:
一网页下载模块,用于向一网站服务器发送多次请求,以从所述网站服务器中获得一网页的一html文本;
一检测模块,用于检测出所述html文本中的html的版本以及所述html文本中的至少一个动态脚本触发事件的动态脚本的版本及分类;
一脚本解析模块,用于分别调用与所述至少一个动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件;
一页面渲染模块,用于调用一与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。
本发明通过所述网页下载模块从所述服务器中得到网页的html文本,并通过所述检测模块检测出html的版本和动态脚本触发事件的动态脚本的版本及分类,而所述脚本解析模块就分别调用与各个动态脚本的版本及分类相同的脚本引擎来解析并运行动态脚本触发事件,如当动态脚本触发事件是由javascript5.0来编写时,就调用javascript5.0版本的脚本解析引擎来解析并运行javascript5.0的动态脚本触发事件,其余的动态脚本触发事件也用相同的原理来进行解析及运行。运行完成后,所述页面渲染模块就调用与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,如html的版本是4.0时,就调用4.0版本的页面渲染引擎,并且把所述脚本引擎的运行结果添加至所述网页中。这样,就可以将网页中的所有内容均生成出来,实现了对一个比较复杂的网页的采集,并且提高了网页信息采集的精细度和成功率。
较佳地,所述网页为由ajax(网页异步加载技术)技术生成的网页或由iframe(网页中的浮动的框架)框架页面组成的网页。
较佳地,所述网页中包括javascript脚本、vbscript脚本及jscript脚本中的一种或多种。
较佳地,所述动态脚本触发事件包括onload事件、onclick事件、onmousemove事件、onkeydown事件及onkeyup事件(上述的onload事件、onclick事件、onmousemove事件、onkeydowm事件及onkeyup事件均为现有技术中常用的动态脚本触发事件)中的一种或多种。
较佳地,所述脚本解析模块用于利用脚本执行器来运行所述至少一个动态脚本触发事件。
本发明的目的还在于提供了一种网页解析方法,其特点在于,其利用上述的网页解析容器实现,所述网页解析方法包括以下步骤:
S1、所述网页下载模块向一网站服务器发送多次请求,以从所述网站服务器中获得一网页的一html文本;
S2、所述检测模块检测出所述html文本中的html的版本以及所述html文本中的至少一个动态脚本触发事件的动态脚本的版本及分类;
S3、所述脚本解析模块分别调用与所述至少一个动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件;
S4、所述页面渲染模块调用一与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。
较佳地,步骤S1中所述网页为由ajax技术生成的网页或由iframe框架页面组成的网页。
较佳地,步骤S1中所述网页中包括javascript脚本、vbscript脚本或jscript脚本中的一种或多种。
较佳地,步骤S2中所述动态脚本触发事件包括onload事件、onclick事件、onmousemove事件、onkeydown事件及onkeyup事件中的一种或多种。
较佳地,步骤S4之后还包括一宏录制步骤:将从步骤S1至步骤S4的过程录制成宏并保存,以在下次解析与所述网页属于同一类的网页时调用并执行所述宏。其中与所述网页属于同一类的网页是指与所述网页具备同一种属性类型的网页,这在本领域中是属于可以理解的常用术语,如网店中的“商品A详细页”、“商品B详细页”、“商品C详细页”就属于同一类的网页。
较佳地,步骤S3中所述脚本解析模块用于利用脚本执行器来运行所述至少一个动态脚本触发事件。
本发明的积极进步效果在于:本发明能够实现对包括有客户端动态脚本的比较复杂的网页的采集以及解析,并且能够在解析并运行动态脚本触发事件后将运行结果添加至网页中,从而能够得到网页中的所有内容,提高了网页信息采集的精细度和成功率。
附图说明
图1为本发明的一较佳实施例的网页解析容器的结构图。
图2为本发明的一较佳实施例的网页解析方法的流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图1所示,本发明的较佳实施例的网页解析容器包括一网页下载模块1、一检测模块2、一脚本解析模块3以及一页面渲染模块4。
所述网页下载模块1向一网站服务器发送多次请求,以从所述网站服务器中获得一网页的一html文本,所述检测模块2就对所述html文本进行检测,检测出所述html文本中的html的版本以及所述html文本中的至少一个动态脚本触发事件的动态脚本的版本及分类,而所述脚本解析模块3就分别调用与所述至少一个动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件,所述页面渲染模块4就调用一与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。
其中所述网页下载模块1向所述网站服务器发送请求来采集的网页都是比一般的传统网页更加复杂的网页,如网页中包括javascript脚本、vbscript脚本及jscript脚本等客户端动态脚本中的一种或多种,或者网页是由ajax技术生成的网页或由iframe框架页面组成的网页。而所述网页下载模块1还能够预先检测出将要采集的所述网页中包括的动态脚本的种类,然后再有针对性地向所述网站服务器发送多次请求来分别下载对应的动态脚本,如所述网页下载模块1在提前检测出所述网页中包括javascript脚本后,就可以直接发送一个用于获取javascript脚本内容的请求至所述网站服务器,则所述网页下载模块1就能够下载到检测出的javascript脚本的内容;而如果所述网页下载模块1检测出所述网页内容中不包括iframe框架页面时,就不用再发送获取iframe框架页面的内容的请求,而所述网页中其他的动态脚本的内容也可以采用类似的方式来获取,这样就能够得到所述网页中的全部内容,并且省去了不必要的请求,节省了获得所述网页中的内容所需要的流程,提高了效率。而在下载的时候可以使用多线程下载技术,来提高网页的下载速度,这属于本领域的公知技术,在此就不再赘述。
为了提高网页解析的效率,所述检测模块2就在所述网页下载模块1得到所述网页的html文本时,提前从所述html文本中解析出html的版本以及下载到的至少一个动态脚本触发事件的动态脚本的版本及分类。而所述脚本解析模块3就会针对不同版本以及不同分类的动态脚本来分别调用不同的脚本解析引擎来解析并运行所述至少一个动态脚本触发事件,如当某一动态脚本触发事件的动态脚本是javascript5.0版本时,所述解析模块3就调用javascript5.0版本的解析引擎来进行解析和运行,其他的动态脚本触发事件也是采用相同的原理来进行解析和运行的,而在具体实施的时候可以采用脚本执行器来运行所述至少一个动态脚本触发事件。
上述的动态脚本触发事件可能会包括onload事件、onclick事件、onmousemove事件、onkeydown事件及onkeyup事件中的一种或多种,而这些动态脚本触发事件都属于本领域的公知常识,在此就不再赘述。例如当遇到onload事件时,所述解析模块3就能够调用一浏览器事件接口来触发所述onload事件,并采用脚本运行器来运行所述onload事件中的相应的脚本,其他的动态脚本触发事件也都采用相同的方法来解析并运行,其中所述浏览器事件接口是本领域的公知技术。
在运行完所有动态脚本触发事件后,所述页面渲染模块4就调用与所述检测模块2检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,如html的版本是4.0时,就调用4.0版本的页面渲染引擎,并且把所述脚本引擎的运行结果添加至所述网页中。而此处的渲染所述网页也就是取得所述网页中的全部内容,如html、xml(可扩展标记语言)以及图像等,并且整理出所述网页中的相关讯息,如加入css(级联样式表)等,并且计算出所述网页的显示方式,直至把所述网页中的全部内容都按照顺序显示出来。这样,就可以将网页中的所有内容均生成出来,实现了对一个比较复杂的网页的采集,并且提高了网页信息采集的精细度和成功率。同时,上述对网页的处理过程可以被录制成宏,并且保存起来,以便下次再执行同一类的网页时调用并执行宏就能够完成操作,提高了处理效率。其中与所述网页属于同一类的网页是指与所述网页具备同一种属性类型的网页,这在本领域中是属于可以理解的常用术语,如网店中的“商品A详细页”、“商品B详细页”、“商品C详细页”就属于同一类的网页,而网店中的“商品列表页”就跟上述的三个网页不是同一类的网页,因为它与上述的三个网页不具备同一种属性类型。
其中,通过一网络爬虫程序就能够获得所述网页解析容器执行各动态脚本后生成的html内容,而此时的html内容是经过所述网页解析容器各模块按顺序运行后生成的最终的网页代码。接着就可以结合正则表达式、htmldom(文档对象模型)等网页代码匹配方式,来提取想要提取的网页信息,如网页中的文字、图片、音频、视频等信息,而关于网页信息的提取已经是本领域的成熟的技术,在此不再赘述。
如图2所示,本发明利用本实施例的网页解析容器实现的网页解析方法包括以下步骤:
步骤100、所述网页下载模块1向一网站服务器发送多次请求,以从所述网站服务器中获得一网页的一html文本。
步骤101、所述检测模块2检测出所述html文本中的html的版本以及所述html文本中的至少一个动态脚本触发事件的动态脚本的版本及分类。
步骤102、所述脚本解析模块3分别调用与所述至少一个动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件。
步骤103、所述页面渲染模块4调用一与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。
步骤104、将从步骤100至步骤103的过程录制成宏并保存,以在下次解析与所述网页属于同一类的网页时调用并执行所述宏,至此流程结束。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (11)
1.一种网页解析容器,其特征在于,其包括:
一网页下载模块,用于向一网站服务器发送多次请求,以从所述网站服务器中获得一网页的一html文本;
一检测模块,用于检测出所述html文本中的html的版本以及所述html文本中的至少一个动态脚本触发事件的动态脚本的版本及分类;
一脚本解析模块,用于分别调用与所述至少一个动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件;
一页面渲染模块,用于调用一与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。
2.如权利要求1所述的网页解析容器,其特征在于,所述网页为由ajax技术生成的网页或由iframe框架页面组成的网页。
3.如权利要求1所述的网页解析容器,其特征在于,所述网页中包括javascript脚本、vbscript脚本及jscript脚本中的一种或多种。
4.如权利要求1-3中任意一项所述的网页解析容器,其特征在于,所述动态脚本触发事件包括onload事件、onclick事件、onmousemove事件、onkeydown事件及onkeyup事件中的一种或多种。
5.如权利要求4所述的网页解析容器,其特征在于,所述脚本解析模块用于利用脚本执行器来运行所述至少一个动态脚本触发事件。
6.一种网页解析方法,其特征在于,其利用如权利要求1所述的网页解析容器实现,所述网页解析方法包括以下步骤:
S1、所述网页下载模块向一网站服务器发送多次请求,以从所述网站服务器中获得一网页的一html文本;
S2、所述检测模块检测出所述html文本中的html的版本以及所述html文本中的至少一个动态脚本触发事件的动态脚本的版本及分类;
S3、所述脚本解析模块分别调用与所述至少一个动态脚本触发事件的动态脚本的版本及分类相同的脚本引擎解析并运行所述至少一个动态脚本触发事件;
S4、所述页面渲染模块调用一与检测出的所述html的版本相同的页面渲染引擎来渲染所述网页,并将所述脚本引擎的运行结果添加至所述网页中。
7.如权利要求6所述的网页解析方法,其特征在于,步骤S1中所述网页为由ajax技术生成的网页或由iframe框架页面组成的网页。
8.如权利要求6所述的网页解析方法,其特征在于,步骤S1中所述网页中包括javascript脚本、vbscript脚本或jscript脚本中的一种或多种。
9.如权利要求6-8中任意一项所述的网页解析方法,其特征在于,步骤S2中所述动态脚本触发事件包括onload事件、onclick事件、onmousemove事件、onkeydown事件及onkeyup事件中的一种或多种。
10.如权利要求9所述的网页解析方法,其特征在于,步骤S4之后还包括一宏录制步骤:将从步骤S1至步骤S4的过程录制成宏并保存,以在下次解析与所述网页属于同一类的网页时调用并执行所述宏。
11.如权利要求10所述的网页解析方法,其特征在于,步骤S3中所述脚本解析模块用于利用脚本执行器来运行所述至少一个动态脚本触发事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210101823.4A CN103365919B (zh) | 2012-04-09 | 2012-04-09 | 网页解析容器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210101823.4A CN103365919B (zh) | 2012-04-09 | 2012-04-09 | 网页解析容器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365919A true CN103365919A (zh) | 2013-10-23 |
CN103365919B CN103365919B (zh) | 2018-07-31 |
Family
ID=49367281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210101823.4A Active CN103365919B (zh) | 2012-04-09 | 2012-04-09 | 网页解析容器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365919B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407979B (zh) * | 2014-12-15 | 2017-06-30 | 北京国双科技有限公司 | 脚本检测方法和装置 |
CN107533716A (zh) * | 2015-06-19 | 2018-01-02 | 谷歌公司 | 用于低带宽通信环境的交互式广告渲染应用 |
CN108197125A (zh) * | 2016-12-08 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 网页抓取方法及装置 |
CN108306937A (zh) * | 2017-12-29 | 2018-07-20 | 五八有限公司 | 短信验证码的发送方法、获取方法、服务器及存储介质 |
CN112882710A (zh) * | 2021-03-10 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 基于客户端的渲染方法、装置、设备以及存储介质 |
CN114595410A (zh) * | 2022-03-24 | 2022-06-07 | 中国农业银行股份有限公司 | 一种网页解析方法、系统及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089856A (zh) * | 2007-07-20 | 2007-12-19 | 李沫南 | 一种提取网页数据的方法和Web爬虫系统 |
US7536389B1 (en) * | 2005-02-22 | 2009-05-19 | Yahoo ! Inc. | Techniques for crawling dynamic web content |
CN101515300A (zh) * | 2009-04-02 | 2009-08-26 | 阿里巴巴集团控股有限公司 | 一种Ajax网页内容的抓取方法及系统 |
CN101625692A (zh) * | 2009-08-04 | 2010-01-13 | 北京大学 | 一种动态脚本网站数据快速收集方法 |
CN102214098A (zh) * | 2011-06-15 | 2011-10-12 | 中山大学 | 一种基于WebKit浏览器引擎的动态页面数据采集方法 |
-
2012
- 2012-04-09 CN CN201210101823.4A patent/CN103365919B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7536389B1 (en) * | 2005-02-22 | 2009-05-19 | Yahoo ! Inc. | Techniques for crawling dynamic web content |
CN101089856A (zh) * | 2007-07-20 | 2007-12-19 | 李沫南 | 一种提取网页数据的方法和Web爬虫系统 |
CN101515300A (zh) * | 2009-04-02 | 2009-08-26 | 阿里巴巴集团控股有限公司 | 一种Ajax网页内容的抓取方法及系统 |
CN101625692A (zh) * | 2009-08-04 | 2010-01-13 | 北京大学 | 一种动态脚本网站数据快速收集方法 |
CN102214098A (zh) * | 2011-06-15 | 2011-10-12 | 中山大学 | 一种基于WebKit浏览器引擎的动态页面数据采集方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407979B (zh) * | 2014-12-15 | 2017-06-30 | 北京国双科技有限公司 | 脚本检测方法和装置 |
CN107533716A (zh) * | 2015-06-19 | 2018-01-02 | 谷歌公司 | 用于低带宽通信环境的交互式广告渲染应用 |
CN107533716B (zh) * | 2015-06-19 | 2021-05-04 | 谷歌有限责任公司 | 用于低带宽通信环境的交互式广告渲染应用 |
CN108197125A (zh) * | 2016-12-08 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 网页抓取方法及装置 |
CN108197125B (zh) * | 2016-12-08 | 2020-10-09 | 腾讯科技(深圳)有限公司 | 网页抓取方法及装置 |
US10922364B2 (en) | 2016-12-08 | 2021-02-16 | Tencent Technology (Shenzhen) Company Limited | Web crawling method and server |
CN108306937A (zh) * | 2017-12-29 | 2018-07-20 | 五八有限公司 | 短信验证码的发送方法、获取方法、服务器及存储介质 |
CN112882710A (zh) * | 2021-03-10 | 2021-06-01 | 百度在线网络技术(北京)有限公司 | 基于客户端的渲染方法、装置、设备以及存储介质 |
CN112882710B (zh) * | 2021-03-10 | 2024-06-04 | 百度在线网络技术(北京)有限公司 | 基于客户端的渲染方法、装置、设备以及存储介质 |
CN114595410A (zh) * | 2022-03-24 | 2022-06-07 | 中国农业银行股份有限公司 | 一种网页解析方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103365919B (zh) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021172B (zh) | 广告过滤方法及广告过滤装置 | |
US9021593B2 (en) | XSS detection method and device | |
CN103365919A (zh) | 网页解析容器及方法 | |
CN104766014A (zh) | 用于检测恶意网址的方法和系统 | |
US8065667B2 (en) | Injecting content into third party documents for document processing | |
CN103268361B (zh) | 网页中隐藏url的提取方法、装置和系统 | |
CN102646135B (zh) | 一种网页收藏方法、装置及系统 | |
CN101562618B (zh) | 一种检测网马的方法及装置 | |
CN106095979B (zh) | Url合并处理方法和装置 | |
JP6203374B2 (ja) | ウェブページ・スタイルアドレスの統合 | |
CN104408204A (zh) | 网页页面链接地址的获取方法和装置 | |
WO2017097039A1 (zh) | 一种视频可播放性的检测方法和装置 | |
CN109428877B (zh) | 一种用于通过用户设备访问业务系统的方法和装置 | |
CN106599270B (zh) | 网络数据抓取方法和爬虫 | |
CN106844486A (zh) | 爬取动态网页的方法及装置 | |
CN106598991A (zh) | 一种使用会话方式实现与网站交互表单自动提取的网络爬虫系统 | |
Shroff et al. | Critical rendering path optimizations to reduce the web page loading time | |
CN103458065A (zh) | 一种HTML5标准下基于Webkit内核的视频地址提取方法 | |
CN103823907A (zh) | 一种整合在线视频资源地址的方法、装置及引擎 | |
CN105447198A (zh) | 页面脚本便捷导入的方法及装置 | |
CN103631806A (zh) | 一种网络信息抓取方法和装置 | |
CN113038153A (zh) | 金融直播违规检测方法、装置、设备及可读存储介质 | |
US20150082206A1 (en) | Methods and apparatus to detect pop-up/pop-under windows in a browser | |
CN107015986A (zh) | 一种爬虫爬取网页的方法及装置 | |
WO2015074455A1 (zh) | 一种计算关联网页URL模式pattern的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161028 Address after: East Building 11, 100195 Beijing city Haidian District xingshikou Road No. 65 west Shan creative garden district 1-4 four layer of 1-4 layer Applicant after: Beijing Jingdong Shangke Information Technology Co., Ltd. Address before: 201203 Shanghai city Pudong New Area Zu Road No. 295 Room 102 Applicant before: Niuhai Information Technology (Shanghai) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |