CN102662966B - 一种面向主题的获取动态页面内容的方法及系统 - Google Patents

一种面向主题的获取动态页面内容的方法及系统 Download PDF

Info

Publication number
CN102662966B
CN102662966B CN201210060335.3A CN201210060335A CN102662966B CN 102662966 B CN102662966 B CN 102662966B CN 201210060335 A CN201210060335 A CN 201210060335A CN 102662966 B CN102662966 B CN 102662966B
Authority
CN
China
Prior art keywords
javascript
page
file
dynamic
current
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.)
Active
Application number
CN201210060335.3A
Other languages
English (en)
Other versions
CN102662966A (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.)
Computer Network Information Center of CAS
Original Assignee
Computer Network Information Center of CAS
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 Computer Network Information Center of CAS filed Critical Computer Network Information Center of CAS
Priority to CN201210060335.3A priority Critical patent/CN102662966B/zh
Publication of CN102662966A publication Critical patent/CN102662966A/zh
Application granted granted Critical
Publication of CN102662966B publication Critical patent/CN102662966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种面向主题的获取动态页面内容的方法及系统,属于网络数据采集技术领域。本方法为:1)在抓取服务器端建立一JavaScript过滤库和一JavaScript本地库;2)获取每一抓取页面的页面信息,生成当前页面的DOM对象;3)根据过滤库检验当前页面中请求的外部文件,如果与主题无关,则在当前页面的DOM对象相应位置设置无需加载标记,否则设置正常加载标记;4)如果标记为正常加载的外部文件存在于本地库,则设置本地加载标记,否则设置正常加载标记;5)执行当前页面中的JavaScript,获取动态页面信息;6)获取整合后的页面信息。与现有技术相比,本方法具有更高的时效性、且动态页面信息完整。

Description

一种面向主题的获取动态页面内容的方法及系统
技术领域
本发明属于网络数据采集技术领域,尤其涉及一种面向主题的获取动态页面内容的方法及系统。
背景技术
当今是信息技术高速发展的时代,各种新事物层出不穷,网络信息呈爆炸趋势,如何从海量数据信息中获取有用的信息,在很多领域和行业中成为一种必需的支撑手段,能够最快最全地掌握行业领域相关的信息往往有利于做出恰当的抉择。与此同时,互联网信息爬取技术已经有了相当发展,尤其是在通用搜索领域,提供给用户的信息量比以前更大,处理用户请求的响应时间也大大提高;特定于客户需求的服务也越来越人性化,搜索内容也从文本、图片覆盖到当今的热门领域-视频。然而随着信息多元化发展,对于特定领域和特定主题的搜索需求越来越多,但通用搜索技术在这些领域的召回率和准确率通常无法满足特定的需求。于是垂直搜索技术应运而生,由于其提供的信息相关度高、同主题信息更多更深入、目标群体更为明确等特点,当前该领域的新技术与新应用越来越广泛。
尽管垂直搜索与通用搜索一样面临着在互联网抓取过程中如何爬取动态页面信息的问题,但由于垂直搜索面向的用户更为具体,需求更为明确,因此如何提供更为全面的基于主题的动态页面信息是垂直搜索引擎的生存基础。目前在垂直搜索领域,如何获取动态页面方面已经取得了一些进展,例如在获取动态页面信息上多采用在抓取客户端中嵌入浏览器内核的方式来获取动态内容,然而该方式虽能获取到一定层次的动态内容,但由于浏览器解析过程中加载了页面布局模块、大量的兼容性代码、与主题无关的动态图片或Flash以及各种广告联盟的广告推广代码等与抓取主题无关的内容,因此时空效率比较低下。为此有人提出将JavaScript解析器嵌入到抓取过程中来实现动态抓取的方式,通常的做法是获取页面、构造DOM、标记DOM中的JavaScript、构造宿主对象、执行JavaScript、返回动态页面。通过这种方式虽然减少了与抓取主题无关的页面布局代码、兼容性代码和图片操作代码等内容的加载解析,但仍然存在着一些缺点:1.加载与主题无关的JavaScript;2.从远程主机请求外部JavaScript文件的时间效率低;3.在执行JavaScript获取的动态页面内容丢失了原页面中存在的部分信息。鉴于这种状况,本申请在这里提供一种新的面向主题的获取动态页面内容的方法。
发明内容
针对当前普遍采用的以嵌入JavaScript解析器的方式实现动态页面内容获取的方法存在的问题,本发明的目的在于提供一种面向主题的获取动态页面内容的方法及系统。
本发明提出以下解决方案,通过建立JavaScript过滤库以过滤与主题无关的JavaScript文件,从而减少加载与主题无关的外部JavaScript文件;通过建立JavaScript本地库以便从本地加载原本需要从远程主机加载的JavaScript文件,从而减少与远程主机之间的交互,进而减少加载外部JavaScript文件所需的时间;通过将原页面中存在而JavaScript解析器解析后的动态页面中缺少的信息加入到动态页面中来提高动态页面的完整性。
本申请提供一种面向主题的获取页面动态内容的方法及系统,用以解决垂直搜索领域如何爬取动态页面信息的问题,技术方案如下:
本申请提供一种面向主题的获取页面动态内容的方法,具体步骤如下:
1.建立JavaScript过滤库
分析每一个抓取页面内部的JavaScript文件,根据其是否与抓取主题相关来决定是否将其相关信息存入到JavaScript过滤库,并增加库维护模块。
2.建立JavaScript本地库
初始存入常见的JavaScript文件,然后根据每一次远程请求的外部JavaScript文件来完善该JavaScript本地库,并增加库维护模块。
3.提供生成各种宿主对象的类
主要包括JavaScript语言本身不存在但在执行JavaScript代码时可能需要访问的对象。
4.获取页面信息
基于正确的页面编码获取页面信息。
5.生成当前页面的DOM对象
利用DOMParser,HTMLParser等HTML解析器生成该页面的DOM对象,当前页面中如果使用到相关宿主对象,则从步骤3提供的宿主类中实例化相应对象。
6.标记是否需过滤JavaScript文件
根据步骤1中提供的JavaScript过滤库信息来检验页面中请求的外部JavaScript文件是否需要继续加载处理,如果该文件在JavaScript过滤库中存在,则在该页面对应的DOM对象中相应位置设置无需加载的过滤标记,否则设置正常加载标记。
7.标记是否需请求JavaScript本地库
如果当前处理的JavaScript文件不是当前站点内部文件并且该文件在JavaScript本地库中存在,则设置从JavaScript本地库加载的本地标记,否则设置正常加载标记。
8.执行页面中的JavaScript
利用JavaScript解析器执行页面中的JavaScript获取动态页面信息,其中需要加载外部JavaScript文件时应根据步骤6和7中设置的过滤标记和本地标记来判断是否需加载该文件以及是否从JavaScript本地库加载该文件。
9.保存动态页面信息
主要包含通过Asynchronous JavaScript and XML(简称Ajax)请求动态获取的页面信息。
10.获取整合后的页面信息
通过执行JavaScript获取的动态页面可能会丢失一些原页面中存在的信息,将这部分丢失的信息重新加入到动态页面中,从而提高页面信息的完整性。
本申请还提供一种面向主题的获取页面动态内容的系统,具体步骤如下:
1.JavaScript过滤库
用页面中与抓取主题无关的JavaScript文件建立JavaScrip过滤库,并提供用于判别是否需过滤的模块。
2.JavaScript本地库
初始库中存入常见的javaScript文件,然后基于每一次远程请求的JavaScript文件去完善该JavaScript本地库,并提供库维护模块。
3.宿主对象生成模块
提供各种宿主对象的定义和生成方法。
4.页面爬行器
以正确的页面编码获取页面源代码的模块。
5.页面DOM对象生成模块
利用页面解析器生成当前页面的HTML DOM对象。
6.JavaScript过滤器
基于JavaScript过滤库来判断当前页面中的JavaScript文件是否需要解析的模块。
7.JavaScript本地库管理器
提供维护JavaScript本地库的模块以及本地库自动加载模块。
8.JavaScript解析器
嵌入外部的JavaScript引擎为执行页面中的JavaScript脚本提供支持的模块。
9.动态页面管理器
保存并维护通过异步JavaScript与XML(Ajax)请求的页面信息。
10.信息整合模块
该模块主要用来检验动态生成的页面是否丢失了原有页面中的一些内容,如果丢失则重新将其添加到动态页面中。
以上技术方案,总体过程是首先建立JavaScript本地库,JavaScript过滤库和生成各种宿主对象,接着通过页面爬行器获取正确的页面信息,随后通过HTML DOM解析器生成该页面的DOM对象,在该过程中由JavaScript过滤器标记当前页面中的JavaScript文件是否需要解析,由JavaScript本地库管理器标记当前页面中的JavaScript文件是否需从JavaScript本地库加载,之后由JavaScript引擎执行当前页面中存在JavaScript文件,与此同时,将解析过程中由Ajax请求获取的页面保存在动态页面库中,接着将JavaScript解析器解析后的页面信息经由信息整合模块处理,最后返回更为完整的页面内容,其中JavaScript解析器中的数据流如图6所示。
与现有技术相比,本发明的积极效果为:
应用如上技术方案,垂直搜索引擎在爬取过程中可以获取更为完整的动态页面信息,而且与现有的调用浏览器内核或者调用JavaScript解析器的方案相比具有更高的时效性。
附图说明
图1是本申请方法实现获取动态内容的方法流程;
图2是本申请方法中页面爬行器的结构示意图;
图3是本申请方法中JavaScript过滤库模块的结构示意图;
图4是本申请方法中宿主对象生成模块的结构示意图;
图5是本申请方法中JavaScript本地库模块的结构示意图;
图6是本申请方法中JavaScript解析器模块的数据流程图。
具体实施方式
如图1所示由本方法所构建的网页动态内容获取方法主要包括:1.建立JavaScript过滤库;2.建立JavaScript本地库;3.提供生成各种宿主对象的类;4.获取页面信息;5.生成当前页面的DOM对象;6.标记是否需过滤JavaScript文件;7.标记是否请求JavaScript本地库;8.执行页面中的JavaScript代码;9.保存动态页面信息;10.获取整合后的页面信息。
该方法对应的系统为:
1.JavaScript过滤库,如图3;2.JavaScript本地库,如图5;3.宿主对象生成模块,如图4;4.页面爬行器,如图2;5.页面DOM对象生成模块;6.JavaScript过滤器;7.JavaScript本地库管理器;8.JavaScript解析器;9.动态页面库管理器;10.信息整合模块。其中,页面爬行器用来获取目标页面初始源码,是整个系统持续运行的基础;JavaScript过滤器用来维护需要解析的JavaScript文件以及确定当前的页面中是否有无需分析的文件,是减少与目标无关的资源加载的关键一步;宿主对象生成模块实现了HTML DOM、EVENT、CSS、Browser ObjectModel、XMLHttprequest规范定义的接口,是JavaScript解析器正确解析、执行页面中JavaScript代码的关键;JavaScript本地库管理器提供了大多数常用的JavaScript文件,尽可能将远程请求转换为本地请求,以便减少与远程主机的交互,是减少加载外部JavaScript文件的关键所在;动态页面库管理器主要用来存储当前页面中通过Ajax请求获取的动态页面内容,为信息整合模块提供必须的资源;信息整合模块主要用于提高目标内容的完整性。
为了便于本领域工程技术人员实施,下面详细说明该方法的实施步骤:
步骤一:建立JavaScript过滤库
基于主题建立与目标内容无关的JavaScript过滤库,该库中主要包含两类可执行的文件:1.与主题明显无关的JavaScript文件,例如用来改变页面布局的JavaScript文件;2.用于在线统计客户满意度,插入第三方广告推广代码等功能的文件,例如在线统计客户满意度代码ForSee Results Survey Code,百度联盟、淘宝联盟以及Google AdSense提供的以JavaScript形式实现的广告服务。
该库中内容的选择,主要使用逐一分析加入到抓取URL集中的页面,通过判断其中所包含的外部JavaScript文件是否与抓取主题相关来决定是否将其存入JavaScript过滤库。
在选择过程中需要注意以下几点:
(1)对于一个主题而言无用的第三方JavaScript文件可能对于另一个主题来说是必须的。
(2)如果第三方JavaScript文件包含多个JavaScript文件,需要确保包含的文件具有完整的逻辑依赖性。
(3)存储第三方JavaScript文件时以该JavaScript文件名称中的关键词部分命名。关键词部分,可以以此种方式来实现,比如ForSee集合,通常以*_ForSee_*形式来命名,那么此时的关键词部分就是指ForSee。
另外,针对该JavaScript过滤库增加一些辅助功能:
A.增加增删改查方法,以便于提供人工更新库中信息的接口。
B.过滤外部JavaScript文件
在加载外部JavaScript文件时,通过文件名称中的关键词部分去搜索JavaScript过滤库,如果能在该库中找到匹配的JavaScript文件,则在DOM树相应位置设置过滤标记1(即无需加载该文件),否则设置正常加载标记0。
步骤二:建立JavaScript本地库
该库初始应该加入jQuery,Ext,Dojo,Google Web ToolKit,ProtoType,YUI等文件集合,根据关键字为各个文件集合建立关键字与文件集合的一对一映射关系,以便于加载时准确快捷。随后根据每一次去当前站点外请求的JavaScript文件名称的关键字部分来检验是否在JavaScript本地库中存在,如果不存在则发出Ajax请求获取该文件并保存到JavaScript本地库;如果存在则不用发送请求,直接进行本地下载。为方便后面的环节使用该JavaScript本地库,需为该库增加增删查的维护功能和标记是否从该库加载的功能。
A.增删查的功能具体如下:
(1)增加JavaScript文件到JavaScript本地库,需要检验该文件的逻辑完整性,比如增加jQuery UI子文件,应保证增加jQuery-Core文件。
(2)从JavaScript本地库中删除JavaScript文件,需要保证文件的逻辑依赖性,比如首先删除jQuery UI,而不能首先删除jQuery-Core,当且仅当没有其他文件对jQuery-Core有依赖后才可以删除jQuery-Core。
(3)每个文件集合包含的子文件,以及子文件之间的依赖关系通过XML文件进行配置。
B.检验是否从JavaScript本地库加载文件
依次顺序检验当前DOM树中每一个JavaScript文件的对应结点处设置的过滤标识来验证该文件是否需要被加载,此时分两种情况:
(1)如果是过滤标识为1,即无需加载,则不予处理本请求,直接处理当前DOM树中下一个JavaScript文件对应的结点,如果当前结点是DOM树中最后一个结点,则终止整个检验过程;
(2)如果是正常加载标识0,则根据该JavaScript文件的关键字部分在JavaScript本地库中查询其中是否存在该文件,此时分两种情况:
i.如果存在,则设置该文件在对应DOM树结点的标识属性为2,即从JavaScript本地库加载;
ii否则继续处理当前DOM树中下一个JavaScript文件对应的结点,如果当前节点是DOM树中最后一个结点,则终止整个检验过程。
JavaScript文件的关键字部分根据步骤二B项中的方式来确定。该部分加载文件的方式与步骤一中页面爬行器采用的方式大体一样,不同之处在于加载JavaScript文件时,直接采用UTF-8编码方式,不进行编码识别。
步骤三:提供生成各种宿主对象的类
A.实现HTML DOM对象
基于DOM规范实现相应等级的DOM对象,该模块应该包含相应等级对应规范中定义的所有DOM对象,其中要保证常见对象的所有属性以及所有对象的常用属性必须实现,以确保在JavaScript解析器在执行时能够找到相应的DOM对象。
B.实现CSS对象
由于本申请方法以及系统中只关注页面中的目标内容,因此涉及页面布局、展示方式的CSS只提供基本的实现即可,该实现中至少应该包括如下部分:CSS样式转文本property的操作方法、CSS样式与文本转换的方法、CSS支持的样式集合、CSS选择器规则以及CSS样式表的解析模块。注意,如果不提供该实现会造成JavaScript解析中找不到相应属性或方法等异常。
C.实现EVENT对象
该模块部分,应该实现Event注册、Event派发功能,主要用于触发onload、onunload、onerror等以on开头的事件。
D.实现BOM对象
该模块主要用于JavaScript解析器在执行JavaScript代码时访问浏览器对象的情况,必须实现窗口(Window),历史(History),导航器(Navigator),屏幕(Screen),文档(Document),位置(Location)六个对象,其中窗口(Window),历史(History),文档(Document),位置(Location)这四个常用对象的属性和方法实现要全面,对于未实现部分要给出异常信息提示。
E.实现XMLHttpRequest对象
该对象的实现中应该包括,open,send,setRequestHeader,getResponseHeader,getResponseHeaders方法,其中send方法中需要对Cookie做相应处理。
步骤四:获取页面信息
需要抓取的url地址来源于特定于主题的URL集合,代码获取部分与传统互联网抓取客户端类似,主要包括两个部分:
A.识别页面编码
首先通过HTTP响应头获取Content-Type字段,如果该字段中不包含charset字符,则以GBK,UTF-8等字符集中任意一种作为当前字符集读取页面的一部分代码,然后查找其中的charset字符串从中截取charset,如果仍然不能确定字符集,则默认当前字符集为UTF-8。
B.读取页面
本步骤与传统互联网客户端采用的技术一样,通过URL(Uniform Resource,统一资源定位符)地址读取该地址对应的页面代码内容。
步骤五:生成当前页面的DOM对象
利用HTMLParser等HTML解析器解析当前页面,该解析器具有在DOM树的每个javascript结点上增加一个标识flag属性的功能,其中flag意义为:0代表正常;1代表需过滤;2代表需向本地JavaScript框架库请求该文件。
步骤六:标记是否需过滤JavaScript文件
遍历当前页面的DOM树,对所遇到的JavaScript结点利用步骤一辅助功能B设置过滤标识。
步骤七:标记是否请求JavaScript本地库
遍历当前页面的DOM树,对所遇到的JavaScript结点利用步骤二B中的方法设置是否从JavaScript本地库加载标识。
步骤八:执行页面中的JavaScript代码
这里可以采用现有的JavaScript解析器,比如SpiderMonkey,Rhino或者Google v8等JavaScript引擎,采用其中任何一种引擎,都应该首先将步骤三中所描述的所有宿主对象加载进去。需要执行的JavaScript代码具体分为两部分:
(1)在构造DOM对象过程中加载外部JavaScript文件,或执行页面中存在的代码段或存在于属性值内部的代码语句
(2)在构造DOM结束后,触发onload等以on开头的注册事件所包含的代码,其中既包括页面中调用注册onload等事件,也包括加载的外部JavaScript文件中包含的onload等事件。
其中,JavaScript文件是指通过HTML标签的src属性加载的外部JavaScript文件,代码段是指存在于HTML标签<script></script>之间的代码,代码语句是指存在于HTML标签属性值中以JavaScript:方式开头的语句。
在执行代码过程中,根据每个需要从外部加载的JavaScirpt文件所对应的DOM结点上的flag属性来决定是否需要加载和是否需要从JavaScipt本地库加载该文件,如果需要则从JavaScript本地库加载,否则按照原有方式请求远程主机。
步骤九:保存动态页面信息
将当前页面中所涉及到的所有JavaScript代码中发出的Ajax请求获取到的页面保存为当前页面的动态页面库。对于库中的每个页面,只有<body>标签内部部分对于主题来说是有意义的,因此提取出每一个页面<body>标签内部的内容,嵌套在<div>标签内。
步骤十:获取整合后的页面信息
对于每个当前页面都建立一个动态页面库,遍历当前动态页面的动态页面库,针对每个动态页面,对它的根<div>标签执行以下算法,其中该算法根据深度优先的顺序来取下一个标签,另需要初始化一个空栈:
(1)取根div标签下的第一个元素;
(2)如果该元素不存在,弹出栈顶元素,然后获取栈顶元素,此时如果栈顶元素为空,转步骤(7),否则取出该元素中的下一个元素,此时如果该元素的下一个元素为空则弹出栈顶元素,此时如果栈为空,则转步骤(7);如果该元素为文本内容,则转向步骤(4);
(3)如果标签内部包含标签,则将当前标签压入栈中,取出该标签(即当前标签)下第一个元素,转步骤(2),否则取出该标签的文本内容;
(4)在前面已经构造好的DOM(即当前页面的DOM树)中查询该本文内容;
(5)如果找到,则获取栈顶元素,如果为空,则转向步骤(7),否则取出该元素中下一个元素,转向步骤(2);
(6)将该文本内容放在根标签<div>内并插入到当前页面主体标签</body>前面的位置,获取栈顶元素,并取其中的下一个元素,转向步骤2);
(7)取下一个动态页面的根<div>;
(8)如果下一个动态页面存在,则转步骤(1),否则结束处理。
最终获取JavaScript解析器执行整个DOM操作后获取的动态页面源码与执行过程中未被插入进当前DOM的内容的结合页面信息,该页面信息与传统JavaScript解析后的页面相比,提供了更为完整的页面信息。

Claims (10)

1.一种面向主题的获取动态页面内容的方法,其步骤为:
1)在抓取服务器端建立一JavaScript过滤库和一JavaScript本地库;
2)获取每一抓取页面的页面信息,生成当前页面的DOM对象;如果当前页面中使用宿主对象,则该抓取服务器将其实例化为相应对象;
3)根据所述JavaScript过滤库检验当前页面中请求的外部JavaScript文件,如果与主题无关,则在当前页面的DOM对象相应位置设置无需加载标记,否则设置正常加载标记;
4)对于标记为正常加载的外部JavaScript文件,如果当前处理的JavaScript文件存在于所述JavaScript本地库,则设置本地加载标记,否则设置正常加载标记;
5)执行当前页面中的JavaScript,获取动态页面信息;其中,根据加载标记加载外部JavaScript文件;
6)检验获取的每一动态页面是否丢失了原有页面中的部分信息,如果丢失,则重新将丢失部分添加到动态页面中,得到整合后的页面信息。
2.如权利要求1所述的方法,其特征在于所述JavaScript过滤库存储与抓取主题无关的JavaScript文件;所述JavaScript本地库存储外部JavaScript文件。
3.如权利要求2所述的方法,其特征在于所述JavaScript过滤库还包括在线统计客户满意度,插入第三方广告推广代码功能的JavaScript文件。
4.如权利要求2或3所述的方法,其特征在于根据所述JavaScript过滤库检验当前页面中请求的外部JavaScript文件,如果该文件在所述JavaScript过滤库中存在,则在当前页面对应的DOM对象相应位置设置无需加载标记,否则设置正常加载标记。
5.如权利要求1所述的方法,其特征在于所述得到整合后的页面信息的方法为:遍历当前动态页面的动态页面库,针对每个动态页面,初始化一个空栈并对它的根标签执行:
a)取根标签下的第一个元素;
b)如果该元素不存在,弹出栈顶元素,然后获取栈顶元素;此时如果栈顶元素为空,则取下一个动态页面的根标签,否则取出该元素中的下一个元素;此时如果该元素的下一个元素为空,则弹出栈顶元素;此时如果栈为空,则取下一个动态页面的根标签,如果该元素为文本内容,则从当前页面的DOM中查询该文本内容;
c)如果标签内部包含标签,则将当前标签压入栈中,取出该标签下第一个元素,执行步骤b)的处理;否则,取出该标签的文本内容,从当前页面的DOM中查询该文本内容;
d)如果从当前页面的DOM中找到查询的文本内容,则获取栈顶元素,如果栈顶元素为空,则取下一个动态页面的根标签;否则取出该元素中下一个元素,执行步骤b)的处理;
e)将该文本内容放在根标签内并插入到当前页面主体标签</body>前面的位置,获取栈顶元素,并取其中的下一个元素,执行步骤b)的处理;
f)如果下一个动态页面不存在,则结束处理。
6.如权利要求1所述的方法,其特征在于该抓取服务器端包括一生成宿主对象的类,用于实例化相应宿主对象;所述宿主对象包括:HTML DOM对象、CSS对象、EVENT对象、BOM对象、XMLHttpRequest对象。
7.如权利要求1所述的方法,其特征在于利用HTML解析器生成当前页面的DOM对象;所述HTML解析器为DOMParser或HTMLParser。
8.如权利要求1或2所述的方法,其特征在于所述JavaScript本地库包括jQuery文件集合、Ext文件集合、Dojo文件集合、Google Web ToolKit文件集合、ProtoType文件集合、YUI文件集合,并检验文件的逻辑完整性;然后根据关键字为各个文件集合建立关键字与各个文件集合的一对一映射关系。
9.一种面向主题的获取动态页面内容的系统,其特征在于包括JavaScript过滤库,JavaScript本地库,宿主对象生成模块,页面爬行器,页面DOM对象生成模块,JavaScript过滤器,JavaScript解析器,信息整合模块;其中,
所述JavaScript过滤库,用于存储与抓取主题无关的JavaScript文件;
所述JavaScript本地库,用于存储外部JavaScript文件;
所述页面爬行器,用来获取目标页面初始源码;
所述JavaScript过滤器,用来维护需要解析的JavaScript文件以及确定当前页面中是否有无需分析的JavaScript文件;
所述宿主对象生成模块,用于提供各种宿主对象的定义和生成方法;
所述信息整合模块,用于检验获取的每一动态页面是否丢失了原有页面中的部分信息,如果丢失,则重新将丢失部分添加到动态页面中,得到整合后的页面信息。
10.如权利要求9所述的系统,其特征在于还包括JavaScript本地库管理器,动态页面库管理器;其中,所述JavaScript本地库管理器包括若干JavaScript文件,并检验文件的逻辑完整性;所述动态页面库管理器,用来存储当前页面中通过Ajax请求获取的动态页面内容,为信息整合模块提供资源。
CN201210060335.3A 2012-03-08 2012-03-08 一种面向主题的获取动态页面内容的方法及系统 Active CN102662966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210060335.3A CN102662966B (zh) 2012-03-08 2012-03-08 一种面向主题的获取动态页面内容的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210060335.3A CN102662966B (zh) 2012-03-08 2012-03-08 一种面向主题的获取动态页面内容的方法及系统

Publications (2)

Publication Number Publication Date
CN102662966A CN102662966A (zh) 2012-09-12
CN102662966B true CN102662966B (zh) 2014-01-01

Family

ID=46772457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210060335.3A Active CN102662966B (zh) 2012-03-08 2012-03-08 一种面向主题的获取动态页面内容的方法及系统

Country Status (1)

Country Link
CN (1) CN102662966B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885988B (zh) * 2012-12-21 2017-11-03 中国移动通信集团公司 输出内容的方法及装置、内容输出系统
CN103699674B (zh) * 2013-12-31 2018-04-13 优视科技有限公司 网页保存、网页打开方法及装置和网页浏览系统
CN103744963B (zh) * 2014-01-06 2018-05-18 北京国双科技有限公司 目标页面转化的处理方法和装置
CN104156247A (zh) * 2014-08-14 2014-11-19 广州金山网络科技有限公司 一种应用升级方法及装置
CN105740290A (zh) * 2014-12-11 2016-07-06 富士通株式会社 移动设备自适应网络搜索的系统和方法
CN105681290B (zh) * 2016-01-08 2018-11-02 北京京东尚科信息技术有限公司 一种自动过滤网络运营商嵌入http响应内容的方法和装置
CN105740419A (zh) * 2016-01-29 2016-07-06 广州酷狗计算机科技有限公司 获取网页中动态加载内容的方法及装置
CN106095869B (zh) 2016-06-03 2020-11-06 腾讯科技(深圳)有限公司 广告信息处理方法、用户设备、后台服务器及系统
CN106777055B (zh) * 2016-12-09 2021-01-01 武汉斗鱼网络科技有限公司 一种实现网站接口化渲染的方法与装置
CN107463713A (zh) * 2017-08-24 2017-12-12 四川长虹电器股份有限公司 快速验证css选择器的方法
CN112887381B (zh) * 2021-01-15 2022-07-19 中国地质大学(武汉) 用于面向特定网络入口的新内容检测和汇聚方法及装置
CN114840203B (zh) * 2022-07-04 2022-09-16 金现代信息产业股份有限公司 页面元素的动态创建方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156737B (zh) * 2011-04-12 2013-03-20 华中师范大学 一种中文网页主题内容的提取方法

Also Published As

Publication number Publication date
CN102662966A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102662966B (zh) 一种面向主题的获取动态页面内容的方法及系统
CN105608134B (zh) 一种基于多线程的网络爬虫系统及其网页爬取方法
CN106126648B (zh) 一种基于重做日志的分布式商品信息爬虫方法
US8683311B2 (en) Generating structured data objects from unstructured web pages
US10642913B2 (en) Intent and bot based query guidance
US8996682B2 (en) Automatically instrumenting a set of web documents
US8527451B2 (en) Business semantic network build
CN106777165B (zh) 一种基于网络爬虫的药品信息库构建方法
CN102426591A (zh) 一种操作用于内容输入的语料库的方法和设备
CN106570750B (zh) 基于浏览器插件的自动报税方法、系统及浏览器插件
CN105243159A (zh) 一种基于可视化脚本编辑器的分布式网络爬虫系统
US10878020B2 (en) Automated extraction tools and their use in social content tagging systems
CN102521232B (zh) 一种互联网元数据的分布式采集处理系统及方法
CN102810089A (zh) 基于内容的短链接系统及实现方法
CN102200996B (zh) 对动态报告进行解析和索引
CN101610265A (zh) 一种业务工作流的流程识别方法
CN106687949A (zh) 本地应用的搜索结果
CN105868225A (zh) 数据查询的方法、客户端、服务器及系统
CN103838837A (zh) 基于语义模板的遥感元数据集成方法
CN103744987B (zh) 基于dom树匹配的视频网站媒资聚合方法和系统
CN104392171A (zh) 一种基于数据关联的自动内存证据分析方法
CN1841377A (zh) 爬寻数据库以找出信息
US20070198491A1 (en) System and method for searching and filtering web pages
CN105204806A (zh) 移动终端网页个性化显示方法及装置
CN105389331A (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
C14 Grant of patent or utility model
GR01 Patent grant