获取目标页面的方法、装置、搜索引擎和浏览器的制作方法

文档序号:6335190阅读:248来源:国知局
专利名称:获取目标页面的方法、装置、搜索引擎和浏览器的制作方法
技术领域
本发明涉及互联网技术,特别涉及一种获取目标页面的方法、装置、搜索引擎和浏
I.I/T PLP见益。
背景技术
随着网络的迅速发展,互联网成为大量信息的载体,如何有效地提取并利用这些 信息成为一个巨大的挑战。搜索引擎作为一个辅助人们检索信息的工具成为用户访问互联 网的入口和指南。网络爬虫(Spider)是一个自动提取网页的程序,是搜索引擎的重要组 成。传统网络爬虫从一个或若干个初始网页的统一资源定位符(URL)开始,抓取该 URL的基础页面,并对当前的基础页面内容进行解析获取目标页面的URL,并进行数据处 理,包括建立网页摘要、快照、索引并存储后,返回给浏览器供用户选择。然而,传统网络爬虫在获取目标页面的URL时,仅能够抓取静态页面,但随着互联 网技术的不断发展,页面的内容从以前的静态方式转变为动态方式生成数据,传统网络爬 虫技术显然不能满足这一转变需求,即不能够抓取页面的动态内容。

发明内容
本发明提供了一种获取目标页面的方法、装置、搜索引擎和浏览器,以便于搜索引 擎在搜索目标页面时能够抓取页面中的动态内容。具体技术方案如下—种获取目标页面的方法,该方法包括以下步骤A、抓取所接收到统一资源定位符URL对应的基础页面以及该基础页面的脚本;B、对抓取的基础页面和脚本进行分析,产生所述基础页面对应的一条以上包含动 态信息的状态路径,利用产生的状态路径抓取目标页面;其中,所述状态路径包含基础页 面的URL、基础页面中产生动态信息的文档对象模型D0M事件的位置信息以及所述D0M事件 对应的回调函数索引。其中,所述步骤B具体包括在所述基础页面以及脚本的抓取过程中下载各D0M节点,依次对下载到的D0M节 点执行步骤B11至B13,直至结束所有D0M节点的下载后,执行步骤B14 ;B11、判断当前下载到的D0M节点是否为script标签,如果是,对下一个下载到的 D0M节点转至步骤B11,否则,执行步骤B12 ;B12、判断当前下载到的D0M节点是否含有D0M事件以及回调函数,如果否,对下一 个下载到的D0M节点转至步骤B11,如果是,执行步骤B13 ;B13、利用当前下载到的D0M节点包含的D0M事件产生状态路径,并将产生的状态 路径保存在状态路径队列中,对下一个下载到的D0M节点转至步骤B11 ;B14、逐一获取状态队列中的各状态路径所对应的目标页面,判断是否产生新的页
6面内容或发生页面跳转,将产生新的页面内容或发生页面跳转的状态路径确定为所述基础 页面对应的状态路径。或者,所述步骤B具体包括在所述基础页面以及脚本的抓取过程中下载各D0M节点,依次对下载到的D0M节 点执行步骤B21至B23,直至结束所有D0M节点的下载;B21、判断当前下载到的D0M节点是否为script标签,如果是,对下一个下载到的 D0M节点转至步骤B21,否则执行步骤B22 ;B22、判断当前下载到的D0M节点是否含有D0M事件以及回调函数,如果否,对下一 个下载到的D0M节点转至步骤B21,如果是,执行步骤B23 ;B23、利用当前下载到的D0M节点包含的D0M事件产生状态路径;B24、获取该状态路径所对应的目标页面,判断是否产生新的页面内容或产生页面 跳转,如果是,确定该状态路径为所述基础页面对应的状态路径,对下一个下载到的D0M节 点转至步骤B21 ;否则对下一个下载到的D0M节点转至步骤B21。上述方式中,判断是否发生页面跳转包括如果获取的目标页面和所述基础页面 的URL不同,则确定发生页面跳转。具体地,判断是否产生新的页面内容包括将获取的目标页面和所述基础页面进 行句子签名或字符串比对,如果比对结果表明目标页面和基础页面具有不同的页面内容, 则确定产生新的页面内容;或者,计算获取的目标页面和所述基础页面的相似度,如果计算结果表明目标页面和基 础页面具有不同的页面内容,则确定产生新的页面内容。其中,所述D0M事件的位置信息包括D0M节点标识、D0M节点的路径Xpath以及 D0M事件标识。更进一步地,在所述步骤B之后,该方法还包括C、存储步骤B产生的基础页面对应的状态路径以及所抓取目标页面的快照,建立 并存储目标页面的索引。一种获取目标页面的方法,基于上述方法之后,包括;接收到来自浏览器的搜索请求后,将搜索请求所包含关键词与存储的目标页面的 索引进行匹配,将匹配的目标页面所对应的状态路径包含在搜索结果中返回给浏览器,供 浏览器利用用户选择的状态路径获取对应的目标页面。另外,所述搜索结果中还可以包括所述匹配的目标页面的快照信息;接收到浏览器返回的用户选择的目标页面的快照信息后,向所述浏览器返回对应 的目标页面的快照。更进一步地,在所述将匹配的目标页面所对应的状态路径包含在搜索结果中返回 给浏览器之后,该方法还包括接收到所述浏览器发送来的用户选择的状态路径后,根据用户选择的状态路径向 目标页面站点发送目标页面请求,以便于所述目标页面站点向所述浏览器推送目标页面。一种获取目标页面的方法,该方法包括浏览器向搜索引擎发送搜索请求后,接收搜索引擎返回的包含状态路径的搜索结 果;
根据用户选择的状态路径,向目标页面站点发送目标页面请求;接收所述目标页面站点推送的目标页面;其中,所述包含状态路径的搜索结果是所述搜索引擎采用权利要求8所述方法返 回的。一种获取目标页面的装置,该装置包括第一抓取单元,用于抓取所接收到统一资源定位符URL对应的基础页面以及该基 础页面的脚本;分析单元,用于对所述第一抓取单元抓取的基础页面和脚本进行分析,产生所述 基础页面对应的一条以上包含动态信息的状态路径;其中,所述状态路径包含基础页面 的URL、基础页面中产生动态信息的文档对象模型D0M事件的位置信息以及所述D0M事件对 应的回调函数索引;第二抓取单元,用于利用所述分析单元产生的状态路径抓取目标页面。其中,所述分析单元具体包括第一判断模块、第二判断模块、第一路径生成模块 和第一路径确定模块;所述第一抓取单元在所述基础页面及其脚本的抓取过程中下载各D0M节点,并将 当前下载到的D0M节点发送给所述第一判断模块,直至结束所有D0M节点的下载后,向所述 第一路径确定模块发送确定通知;所述第一判断模块,用于判断当前下载到的D0M节点是否为script标签,如果是, 触发所述第一抓取单元下载下一个D0M节点,否则,向所述第二判断模块发送判断通知;所述第二判断模块,用于判断当前下载到的D0M节点是否含有D0M事件以及回调 函数,如果否,触发所述第一抓取单元下载下一个D0M节点,如果是,向所述第一路径生成 模块发送执行通知;所述第一路径生成模块,用于接收到所述执行通知后,利用当前下载到的D0M节 点产生状态路径,并将产生的状态路径保存在状态路径队列中,触发所述第一抓取单元下 载下一个D0M节点;所述第一路径确定模块,用于接收到所述确定通知时,触发所述第二抓取单元逐 一获取状态队列中各状态路径对应的目标页面,根据所述第二抓取单元的获取结果判断是 否产生新的页面内容或发生页面跳转,将产生的新的页面内容或发生页面跳转的状态路径 确定为所述基础页面对应的状态路径。具体地,所述分析单元可以包括第三判断模块、第四判断模块、第二路径生成模 块和第二路径确定模块;所述第一抓取单元在所述基础页面及其脚本的抓取过程中下载各D0M节点,并将 当前下载到的D0M节点发送给所述第三判断模块,直至结束所有D0M节点的下载; 所述第三判断模块,用于判断当前下载的D0M节点是否为script标签,如果是,触 发所述第一抓取单元下载下一个D0M节点,否则,向所述第四判断模块发送判断通知;所述第四判断模块,用于判断当前下载到的D0M节点是否含有D0M事件以及回调 函数,如果否,触发所述第一抓取单元下载下一个D0M节点,如果是,向所述第二路径生成 模块发送执行通知;所述第二路径生成模块,用于接收到执行通知时,利用当前下载到的D0M节点包
8含的D0M事件产生状态路径,并将产生的状态路径发送给所述第二路径确定模块;第二路径确定模块,用于接收到状态路径时,触发所述第二抓取单元获取该状态 路径所对应的目标页面,根据所述第二抓取单元的获取结果,判断是否产生新的页面内容 或产生页面跳转,如果是,确定该状态路径为所述基础页面对应的状态路径,触发所述第一 抓取单元下载下一个D0M节点,否则触发所述第一抓取单元下载下一个D0M节点。其中,判断是否发生页面跳转包括如果获取的目标页面和所述基础页面的URL 不同,则确定发生页面跳转。判断是否产生新的页面内容包括将获取的目标页面和所述基础页面进行句子签 名或字符串比对,如果比对结果表明目标页面和基础页面具有不同的页面内容,则确定产 生新的页面内容;或者,计算获取的目标页面和所述基础页面的相似度,如果计算结果表明目标页面和基 础页面具有不同的页面内容,则确定产生新的页面内容。具体地,所述D0M事件的位置信息包括D0M节点标识、D0M节点的路径Xpath以及 D0M事件标识。更进一步地,该装置还包括存储单元,用于存储所述分析单元产生的基础页面对应的状态路径以及所述第二 抓取单元所抓取目标页面的快照,建立并存储目标页面的索引。一种搜索引擎,该搜索引擎包括上述获取目标页面的装置、用户接口单元和搜索 处理单元;所述用户接口单元,用于接收来自浏览器的搜索请求,并将该搜索请求中包含的 关键词发送给所述搜索处理单元;将所述搜索处理单元发送来的搜索结果返回给浏览器, 供浏览器利用用户选择的状态路径获取对应的目标页面;所述搜索处理单元,用于将所述关键词与所述装置中存储单元存储的目标页面的 索引进行匹配,将匹配到的目标页面所对应的状态路径包含在搜索结果中发送给所述用户 接口单元。更进一步地,所述搜索结果中还包括所述匹配的目标页面的快照信息;所述用户接口单元,还用于将浏览器返回的用户选择的目标页面的快照信息发送 给所述搜索处理单元;将所述搜索处理单元发送来的目标页面的快照返回给所述浏览器;所述搜索处理单元,还用于根据所述用户选择的目标页面的快照信息,从所述存 储单元中获取对应的目标页面的快照并发送给所述用户接口单元。更进一步地,该搜索引擎还包括路径解析单元和网络接口单元;所述用户接口单元,还用于接收到浏览器发送的用户选择的状态路径后,将该状 态路径发送给所述路径解析单元;所述路径解析单元,用于根据接收到的状态路径生成目标页面请求;所述网络接口单元,用于将所述路径解析单元生成的目标页面请求发送给目标页 面站点。一种浏览器,该浏览器包括网络侧接口单元、路径解析单元和用户侧接口单元;所述网络侧接口单元,用于接收如权利要求19所述搜索引擎发送来的包含状态 路径的搜索结果;将所述路径解析单元发送来的目标页面请求发送给目标页面站点;
9
所述用户侧接口单元,用于将所述网络侧接口单元接收到的搜索结果显示给用 户;将用户选择的状态路径发送给所述路径解析单元;所述路径解析单元,用于根据用户选择的状态路径生成目标页面请求并发送给所 述网络侧接口单元。由以上技术方案可以看出,本发明基于对基础页面及其脚本的分析,引入状态路 径的概念,即产生基础页面对应的包含动态信息的状态路径,该状态路径指向的目标页面 包含页面的动态内容,使得后续搜索引擎在搜索目标页面时能够抓取页面中的动态内容。


图1为本发明提供的主要方法流程图2为本发明实施例一提供的详细方法流程图3为本发明实施例二提供的产生状态路径的流程图4为本发明实施例三提供的产生状态路径的流程图5为本发明实施例四提供的浏览器获取目标页面的流程图6为本发明实施例五提供的浏览器获取目标页面的流程图7为本发明实施例六提供的浏览器获取目标快照的流程图8为本发明提供的装置结构图示意图9为图8中分析单元的一种结构示意图10为图8中分析单元的另一种结构示意图11为本发明提供的搜索引擎结构示意图12为本发明提供的浏览器结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本发明进行详细描述。本发明提供的主要方法可以如图1所示,包括以下步骤步骤101 抓取所接收到URL对应的基础页面以及该基础页面的脚本。步骤102 对抓取的基础页面和脚本进行分析,产生与该基础页面对应的一条以 上包含动态信息的状态路径;其中,状态路径包含基础页面的URL、基础页面中产生动态 信息的文档对象模型(D0M)事件的位置信息以及该产生动态信息的D0M事件对应的回调函 数索引。步骤103 利用产生的状态路径抓取目标页面。上述图1所示的方法流程是搜索引擎所执行的操作,更进一步地,搜索引擎还会 将产生的状态路径进行存储,以便在接收到浏览器的搜索请求后,向浏览器返回包含状态 路径的搜索结果,供浏览器利用用户选择的状态路径获取对应的目标页面。下面通过具体实施例对上述方法进行详细描述。实施例一、图2为本发明实施例一提供的详细方法流程图,如图2所示,该方法可以具体包括 以下步骤
步骤201 搜索引擎接收URL。搜索引擎可以在后台自动批量地抓取URL。步骤202 抓取所接收到URL对应的基础页面以及该基础页面的脚本。基础页面与脚本的对应关系可以存在以下两种其一、基础页面原始码包含的 HTML标签中存在脚本文档。其二、基础页面原始码包含的HTML标签中存在脚本文档的链 接,该脚本文档的链接指向脚本文档;也就是说,基础页面和脚本文档为两个不同的文档, 但存在引用关系。步骤203 对抓取的基础页面中下载到的DOM节点进行分析,判断DOM节点中DOM 事件对应的脚本是否产生动态信息,根据分析结果产生与该基础页面对应的一条以上包含 动态信息的状态路径以及利用该状态路径获取目标页面;其中,状态路径包含基础页面 的URL、基础页面中产生动态信息的DOM事件的位置信息以及该产生动态信息的DOM事件对 应的回调函数索引。本发明中涉及的脚本语言包括但不限于java script、vbscript、perl或者 pythonο其中,DOM事件的位置信息可以包含D0M节点标识、DOM节点的路径(Xpath)、D0M 事件标识。其中,DOM节点标识可以为D0M节点的ID或DOM节点的名称。状态路径中的回调函数索引用于对DOM事件对应的回调函数进行引用。脚本中所 有的回调函数都具备索引,且该索引与具体回调函数的对应关系可以通过全局函数表、映 射函数等数据结构进行存储。通过状态路径中的回调函数索引,到包含索引与具体回调函 数的对应关系的数据结构中进行查询,便可以获取到DOM事件对应的回调函数。这里的回 调函数可以包括匿名回调函数和非匿名回调函数。针对状态路径,完成DOM事件所对应回调函数的编译和执行后,便可以获取对应 的目标页面。本步骤中的具体实现将在实施例二和实施例三中进行详细描述。对于一个基础页面,其可以对应N条状态路径,对应N个目标页面,其中N可以为 一以上的整数。例如,对于URL为m baidu. com的基础页面,产生的两条状态路径可以为{base_urlhttp//www. baidu.com, id:idsamplel, xpathhtml/body/a/, event:click, type:new_content, callback:funl}{base_url:http://www. baidu. com, id:idsample2, xpath:html/body/1i/a/, event:click, type:new_link, callback:fun2}需要说明的是,本发明并不限定状态路径的具体格式,上述仅是其中一种实例。步骤204 存储基础页面对应的状态路径以及状态路径对应的目标页面快照,建 立并存储目标页面的索引,以便后续被搜索引擎找到并作为搜索结果返回给浏览器。该实施例中,可以对步骤202抓取的基础页面及其脚本进行存储,对步骤203产生 的状态路径进行存储,以及对步骤203获取的目标页面快照进行存储。其中,基础页面的存 储具体可以包括基础页面URL、基础页面快照等。搜索引擎获取目标页面的流程可以定期执行,也可以人为触发执行。每次产生基 础页面对应的状态路径时,如果存在已存储的状态路径,则可以将产生的基础页面对应的状态路径与已经存储的该基础页面对应的状态路径进行比较,如果不同,则及时更新存储 的基础页面对应的状态路径。另外,搜索引擎可以定期根据目标页面的索引检查目标页面是否有更新,并及时 更新存储的目标页面的索引。同样,如果每次获取的目标页面快照与已存储的目标页面快 照不同,则可以用新获取的目标页面快照替换已存储的目标页面快照。对于上述存储的三类内容,可以分别独立进行存储,也可以合并存储。上述步骤201至步骤204均是搜索引擎在后台的操作,如果搜索引擎接收到来自 浏览器的搜索请求,则继续在前台执行下述步骤。步骤205 接收到来自浏览器的搜索请求后,将搜索请求所包含关键词与各目标 页面的索引进行匹配,将匹配的目标页面所对应的状态路径包含在搜索结果中返回给浏览 器,供浏览器利用用户选择的状态路径获取对应的目标页面。当搜索引擎接收到包含关键词的搜索请求后,除了目标页面的索引参与匹配之 外,基础页面的索引也会参与匹配,也就是说,基础页面也会包含在搜索结果中,这部分与 现有技术相同,不再具体赘述。更进一步地,搜索结果中还可以包含目标页面的快照信息,或者,还可以包含目标 页面的索引。在本步骤中,浏览器具体如何利用用户选择的状态路径获取对应的目标页面参见 实施例四和实施例五。上述步骤203中产生状态路径的方式可以采用实施例二和实施例三两种方式。实施例二、图3为本发明实施例二提供的产生状态路径的流程图,如图3所示,可以具体包括 以下步骤步骤301 在基础页面及其脚本的抓取过程中下载各DOM节点。步骤302 判断是否结束DOM节点的下载,如果是,结束基础页面的抓取流程,转至 执行步骤306 ;否则,对当前下载到的DOM节点执行步骤303。步骤303 判断当前下载到的DOM节点是否为script标签,如果是,对下一个下载 到的DOM节点转至步骤302 ;否则,执行步骤304。对于script标签的节点,可以将该script标签对应的脚本发送至脚本解析引擎 进行编译执行。步骤304 判断该DOM节点是否含有DOM事件以及回调函数,如果否,跳出该DOM节 点的分析,对下一个下载到的DOM节点转至步骤302 ;如果是,执行步骤305。如果该DOM节点不包含DOM事件以及回调函数,则说明该DOM节点中不会引起页 面跳转和新的页面内容,即不会产生页面动态信息,可以跳过该DOM节点,如果存在下一 DOM节点,则开始下一 DOM节点的分析。步骤305 利用该DOM节点包含的DOM事件产生状态路径,并将产生的状态路径保 存在状态路径队列中;对下一个下载到的DOM节点转至步骤302。步骤306 逐一获取状态队列中的各状态路径所对应的目标页面,判断是否产生 新的页面内容或发生页面跳转,将产生新的页面内容或发生页面跳转的状态路径确定为基 础页面对应的状态路径。
然后可以将产生新的页面内容或发生页面跳转的状态路径及其对应的目标页面 进行存储。判断是否发生页面跳转的方式可以为如果目标页面和基础页面的URL不同,则 确定发生页面跳转。判断是否产生新的页面内容的方式可以为对目标页面和基础页面进 行句子签名或字符串比对,或者,计算目标页面和基础页面的相似度,如果比对结果或相似 度计算结果表明目标页面和基础页面具有不同的页面内容,则确定产生新的页面内容。其 中,在进行句子签名的比对时,句子签名的计算可以采用诸如MD5等现有的计算方式,在此 不做具体限制。在该实施例二中,首先将DOM事件产生的状态路径均保存在状态路径队列中,但 由于DOM事件的状态路径并不一定都产生页面动态信息,也可能会存在一些无效的状态路 径,因此,再逐一对状态路径队列中的各状态路径进行判断,确定该状态路径队列对应的目 标页面是否包含动态信息。步骤303至步骤305的流程是对各DOM节点进行分析初步产生 状态路径的过程,也就是说,对各下载到的DOM节点均执行步骤303至步骤305,直至下载完 所有的DOM节点后执行步骤306最终确定基础页面对应的状态路径。实施例三、图4为本发明实施例三提供的产生状态路径的流程图,如图4所示,可以具体包括 以下步骤步骤401 在基础页面及其脚本的抓取过程中下载各DOM节点。步骤402 判断是否结束DOM节点的下载,如果是,结束基础页面的抓取流程;否 则,对当前下载到的DOM节点执行步骤403。步骤403 判断当前下载到的DOM节点是否为script标签,如果是,对下一个下载 到的DOM节点转至步骤402 ;否则,执行步骤404。对于script标签的节点,可以将该script标签对应的脚本发送至脚本解析引擎 进行编译执行。步骤404 判断该DOM节点是否含有DOM事件以及回调函数,如果否,跳出该DOM节 点的分析,对下一个下载到的DOM节点转至步骤402 ;如果是,执行步骤405。步骤405 利用该DOM节点中的DOM事件产生状态路径。在本步骤中,可以对所有的DOM事件产生状态路径,更优地,也可以对在预设DOM 事件列表中的DOM事件产生状态路径。其中预设DOM事件列表中的DOM事件可以包括 onclick,ondbclick,onmouseover,onmousemove,onmouseout,onblur,onfocus,onchange, onsubmit, onselect等,这些DOM事件都是可能产生页面动态信息的DOM事件。步骤406 获取该状态路径所对应的目标页面,判断是否产生新的页面内容或产 生页面跳转,如果是,执行步骤407 ;否则对下一个下载到的DOM节点转至步骤402。步骤407 确定该状态路径为基础页面对应的状态路径,可以存储该状态路径及 其对应的目标页面,对下一个下载到的DOM节点转至步骤402。与实施例二不同的是,实施例三中每产生一个状态路径均进行判断,确定该状态 路径队列对应的目标页面是否包含动态信息(即步骤406),如果包含则存储该状态路径及 其对应的目标页面。步骤403至步骤407是对各下载到的DOM节点进行分析后产生状态路 径的过程,也就是说,对各下载到的DOM节点均执行步骤403至步骤407,直至下载完所有的DOM节点。至此实施例三所示流程结束。在上述实施例二和实施例三中,在获取状态路径所对应的目标页面,判断是否产 生新的页面内容或产生页面跳转的步骤时,会将DOM事件对应的回调函数索引发送给脚本 解析引擎,由脚本解析引擎根据该回调函数索引获取对应的回调函数,根据对获取的回调 函数进行编译和执行的结果执行获取状态路径所对应的目标页面,判断是否产生新的页面 内容或产生页面跳转的步骤。其中,对于匿名函数而言,脚本解析引擎在获取对应的回调函 数后,会对获取的回调函数进行实时地编译和执行,而对于非匿名函数而言,脚本解析引擎 在获取对应的回调函数后,可以利用之前对该回调函数的编译和执行结果。浏览器利用状态路径获取目标页面的方式根据浏览器是否具备解析状态路径功 能可以分为两种,分别通过实施例四和实施例五进行描述。实施例四、当浏览器具备解析状态路径的功能时,对应的流程图如图5所示,包括以下步骤步骤501 浏览器向搜索引擎发送包含关键词的搜索请求(Query)。步骤502 搜索引擎执行步骤205向浏览器返回包含状态路径的搜索结果。步骤503 浏览器根据用户选择的状态路径,向目标页面站点发送目标页面请求。当用户点击目标页面的状态路径时,浏览器解析用户点击的状态路径,根据该状 态路径向目标页面站点发送目标页面请求。步骤504 目标页面站点向浏览器推送目标页面。实施例五、当浏览器不具备解析状态路径的功能时,对应的流程图如图6所示,包括以下步 骤步骤601 浏览器向搜索引擎发送包含关键词的搜索请求。步骤602 搜索引擎执行步骤205向浏览器返回包含状态路径的搜索结果。步骤603 浏览器将用户选择的状态路径发送给搜索引擎。步骤604:搜索引擎根据用户选择的状态路径向目标页面站点发送目标页面请 求。由于浏览器不具备状态路径解析功能,因此,浏览器仅将用户选择的状态路径发 送给搜索引擎,由搜索引擎解析状态路径并根据该状态路径向目标页面站点发送目标页面 请求。步骤605 目标页面站点向浏览器推送目标页面。搜索引擎发送的目标页面请求中会包含浏览器信息,以便目标页面站点会将目标 页面推送给浏览器。至此实施例五所示流程结束。还有一种情况,如果搜索引擎在实施例一的步骤205返回的搜索结果中包含目标 页面快照信息时,如果用户点击目标页面快照,则浏览器和搜索引擎之间的交互可以按照 实施例六执行。实施例六、图7为实施例六提供的浏览器获取目标快照的流程图,如图7所示,可以包括以下步骤步骤701 浏览器向搜索引擎发送包含关键词的搜索请求。步骤702 搜索引擎执行步骤205向浏览器返回包含状态路径和目标页面快照信 息的搜索结果。步骤703 浏览器将用户选择的目标页面快照信息发送给搜索引擎。步骤704 搜索引擎确定对应的目标页面快照并返回给浏览器。由于搜索引擎已经在本地存储了各目标页面快照,因此无需再与目标页面站点进 行交互,直接从本地获取对应的目标页面快照后返回给浏览器。以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的获取目标 页面的装置进行详细描述,如图8所示,该装置可以包括第一抓取单元800、分析单元810 和第二抓取单元820。第一抓取单元800,用于抓取所接收到URL对应的基础页面以及该基础页面的脚 本。分析单元810,用于对第一抓取单元800抓取的基础页面和脚本进行分析,产生基 础页面对应的一条以上包含动态信息的状态路径;其中,状态路径包含基础页面的URL、 基础页面中产生动态信息的DOM事件的位置信息以及DOM事件对应的回调函数索引。第二抓取单元820,用于利用分析单元810产生的状态路径抓取目标页面。其中,分析单元810可以采用两种结构,第一种结构如图9中所示,具体包括第一 判断模块811、第二判断模块812、第一路径生成模块813和第一路径确定模块814。第一抓取单元800在基础页面及其脚本的抓取过程中下载各DOM节点,并将当前 下载到的DOM节点发送给第一判断模块811,直至结束所有DOM节点的下载后,向第一路径 确定模块814发送确定通知。第一判断模块811,用于判断当前下载到的DOM节点是否为script标签,如果是, 触发第一抓取单元800下载下一个DOM节点,否则,向第二判断模块812发送判断通知。第二判断模块812,用于判断当前下载到的DOM节点是否含有DOM事件以及回调函 数,如果否,触发第一抓取单元800下载下一个DOM节点,如果是,向第一路径生成模块813 发送执行通知。第一路径生成模块813,用于接收到执行通知后,利用当前下载到的DOM节点产生 状态路径,并将产生的状态路径保存在状态路径队列中,触发第一抓取单元800下载下一 个DOM节点。第一路径确定模块814,用于接收到确定通知时,触发第二抓取单元820逐一获取 状态队列中各状态路径对应的目标页面,根据第二抓取单元820的获取结果判断是否产生 新的页面内容或发生页面跳转,将产生的新的页面内容或发生页面跳转的状态路径确定为 基础页面对应的状态路径。另外,分析单元810的第二种结构如图10所示,可以具体包括第三判断模块 911、第四判断模块912、第二路径生成模块913和第二路径确定模块914。第一抓取单元800在基础页面及其脚本的抓取过程中下载各DOM节点,并将当前 下载到的DOM节点发送给第三判断模块911,直至结束所有DOM节点的下载。第三判断模块911,用于判断当前下载的DOM节点是否为script标签,如果是,触发第一抓取单元800下载下一个DOM节点,否则,向第四判断模块912发送判断通知。第四判断模块912,用于判断当前下载到的DOM节点是否含有DOM事件以及回调函 数,如果否,触发第一抓取单元800下载下一个DOM节点,如果是,向第二路径生成模块913 发送执行通知。第二路径生成模块913,用于接收到执行通知时,利用当前下载到的DOM节点包含 的DOM事件产生状态路径,并将产生的状态路径发送给第二路径确定模块914。第二路径确定模块914,用于接收到状态路径时,触发第二抓取单元820获取该状 态路径所对应的目标页面,根据第二抓取单元820的获取结果,判断是否产生新的页面内 容或产生页面跳转,如果是,确定该状态路径为基础页面对应的状态路径,触发第一抓取单 元800下载下一个DOM节点,否则触发第一抓取单元800下载下一个DOM节点。具体地,应用于上述两种结构时,判断是否发生页面跳转可以包括如果获取的目 标页面和基础页面的URL不同,则确定发生页面跳转。判断是否产生新的页面内容可以包括将获取的目标页面和基础页面进行句子签 名或字符串比对,如果比对结果表明目标页面和基础页面具有不同的页面内容,则确定产 生新的页面内容;或者,计算获取的目标页面和基础页面的相似度,如果计算结果表明目标 页面和基础页面具有不同的页面内容,则确定产生新的页面内容。其中,状态路径中的上述DOM事件的位置信息包括D0M节点标识、DOM节点的 Xpath以及DOM事件标识。更进一步地,该装置还可以包括存储单元830,用于存储分析单元810产生的基础页面对应的状态路径以及第二 抓取单元820所抓取目标页面的快照,建立并存储目标页面的索引。另外,存储单元830还会对第一抓取单元800抓取的基础页面进行存储,其中,对 于基础页面、状态路径以及目标页面的快照三部分可以采用分别独立存储的方式,也可以 采用统一存储的方式。图11为本发明提供的搜索引擎结构示意图,如图11所示,该搜索引擎包括图8 中所示的装置、用户接口单元1101和搜索处理单元1102。用户接口单元1101,用于接收来自浏览器的搜索请求,并将该搜索请求中包含的 关键词发送给搜索处理单元1102 ;将搜索处理单元1102发送来的搜索结果返回给浏览器, 供浏览器利用用户选择的状态路径获取对应的目标页面。搜索处理单元1102,用于将关键词与存储单元830存储的目标页面的索引进行匹 配,将匹配到的目标页面所对应的状态路径包含在搜索结果中发送给用户接口单元1101。更优地,搜索结果中还可以包括匹配的目标页面的快照信息。此时,用户接口单元1101,还用于将浏览器返回的用户选择的目标页面的快照信息发送 给搜索处理单元1102 ;将搜索处理单元1102发送来的目标页面的快照返回给浏览器。搜索处理单元1102,还用于根据用户选择的目标页面的快照信息,从存储单元 830中获取对应的目标页面的快照并发送给用户接口单元1101。更进一步地,当浏览器不具备状态路径的解析功能时,该搜索引擎需要具备该功 能从而协助完成目标页面向浏览器的推送。此时,该搜索引擎还可以进一步包括路径解析 单元1103和网络接口单元1104。
用户接口单元1101,还用于接收到浏览器发送的用户选择的状态路径后,将该状 态路径发送给路径解析单元1103。路径解析单元1103,用于根据接收到的状态路径生成目标页面请求。网络接口单元1104,用于将路径解析单元1103生成的目标页面请求发送给目标 页面站点。图12为本发明提供的浏览器结构示意图,该浏览器具备状态路径解析功能,如图 12所示,该浏览器可以包括网络侧接口单元1201、路径解析单元1202和用户侧接口单元 1203。网络侧接口单元1201,用于接收图11所示搜索引擎发送来的包含状态路径的搜 索结果;将路径解析单元1202发送来的目标页面请求发送给目标页面站点。用户侧接口单元1203,用于将网络侧接口单元1201接收到的搜索结果显示给用 户;将用户选择的状态路径发送给路径解析单元1202。路径解析单元1202,用于根据用户选择的状态路径生成目标页面请求并发送给网 络侧接口单元1201。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
一种获取目标页面的方法,其特征在于,该方法包括以下步骤A、抓取所接收到统一资源定位符URL对应的基础页面以及该基础页面的脚本;B、对抓取的基础页面和脚本进行分析,产生所述基础页面对应的一条以上包含动态信息的状态路径,利用产生的状态路径抓取目标页面;其中,所述状态路径包含基础页面的URL、基础页面中产生动态信息的文档对象模型DOM事件的位置信息以及所述DOM事件对应的回调函数索引。
2.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括在所述基础页面以及脚本的抓取过程中下载各D0M节点,依次对下载到的D0M节点执 行步骤B11至B13,直至结束所有D0M节点的下载后,执行步骤B14 ;B11、判断当前下载到的D0M节点是否为script标签,如果是,对下一个下载到的D0M 节点转至步骤B11,否则,执行步骤B12 ;B12、判断当前下载到的D0M节点是否含有D0M事件以及回调函数,如果否,对下一个下 载到的D0M节点转至步骤B11,如果是,执行步骤B13 ;B13、利用当前下载到的D0M节点包含的D0M事件产生状态路径,并将产生的状态路径 保存在状态路径队列中,对下一个下载到的D0M节点转至步骤B11 ;B14、逐一获取状态队列中的各状态路径所对应的目标页面,判断是否产生新的页面内 容或发生页面跳转,将产生新的页面内容或发生页面跳转的状态路径确定为所述基础页面 对应的状态路径。
3.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括在所述基础页面以及脚本的抓取过程中下载各D0M节点,依次对下载到的D0M节点执 行步骤B21至B23,直至结束所有D0M节点的下载;B21、判断当前下载到的D0M节点是否为script标签,如果是,对下一个下载到的D0M 节点转至步骤B21,否则执行步骤B22 ;B22、判断当前下载到的D0M节点是否含有D0M事件以及回调函数,如果否,对下一个下 载到的D0M节点转至步骤B21,如果是,执行步骤B23 ;B23、利用当前下载到的D0M节点包含的D0M事件产生状态路径; B24、获取该状态路径所对应的目标页面,判断是否产生新的页面内容或产生页面跳 转,如果是,确定该状态路径为所述基础页面对应的状态路径,对下一个下载到的D0M节点 转至步骤B21 ;否则对下一个下载到的D0M节点转至步骤B21。
4.根据权利要求2或3所述的方法,其特征在于,判断是否发生页面跳转包括如果获 取的目标页面和所述基础页面的URL不同,则确定发生页面跳转。
5.根据权利要求2或3所述的方法,其特征在于,判断是否产生新的页面内容包括将 获取的目标页面和所述基础页面进行句子签名或字符串比对,如果比对结果表明目标页面 和基础页面具有不同的页面内容,则确定产生新的页面内容;或者,计算获取的目标页面和所述基础页面的相似度,如果计算结果表明目标页面和基础页 面具有不同的页面内容,则确定产生新的页面内容。
6.根据权利要求1至3任一权项所述的方法,其特征在于,所述D0M事件的位置信息包 括D0M节点标识、D0M节点的路径Xpath以及D0M事件标识。
7.根据权利要求1至3任一权项所述的方法,其特征在于,在所述步骤B之后,该方法还包括C、存储步骤B产生的基础页面对应的状态路径以及所抓取目标页面的快照,建立并存 储目标页面的索引。
8.一种获取目标页面的方法,其特征在于,基于权利要求7所述的方法之后,包括 接收到来自浏览器的搜索请求后,将搜索请求所包含关键词与存储的目标页面的索引进行匹配,将匹配的目标页面所对应的状态路径包含在搜索结果中返回给浏览器,供浏览 器利用用户选择的状态路径获取对应的目标页面。
9.根据权利要求8所述的方法,其特征在于,所述搜索结果中还包括所述匹配的目标 页面的快照信息;接收到浏览器返回的用户选择的目标页面的快照信息后,向所述浏览器返回对应的目 标页面的快照。
10.根据权利要求8所述的方法,其特征在于,在所述将匹配的目标页面所对应的状态 路径包含在搜索结果中返回给浏览器之后,该方法还包括接收到所述浏览器发送来的用户选择的状态路径后,根据用户选择的状态路径向目标 页面站点发送目标页面请求,以便于所述目标页面站点向所述浏览器推送目标页面。
11.一种获取目标页面的方法,其特征在于,该方法包括浏览器向搜索引擎发送搜索请求后,接收搜索引擎返回的包含状态路径的搜索结果; 根据用户选择的状态路径,向目标页面站点发送目标页面请求; 接收所述目标页面站点推送的目标页面;其中,所述包含状态路径的搜索结果是所述搜索引擎采用权利要求8所述方法返回的。
12.一种获取目标页面的装置,其特征在于,该装置包括第一抓取单元,用于抓取所接收到统一资源定位符URL对应的基础页面以及该基础页 面的脚本;分析单元,用于对所述第一抓取单元抓取的基础页面和脚本进行分析,产生所述基 础页面对应的一条以上包含动态信息的状态路径;其中,所述状态路径包含基础页面的 URL、基础页面中产生动态信息的文档对象模型D0M事件的位置信息以及所述D0M事件对应 的回调函数索引;第二抓取单元,用于利用所述分析单元产生的状态路径抓取目标页面。
13.根据权利要求12所述的装置,其特征在于,所述分析单元具体包括第一判断模 块、第二判断模块、第一路径生成模块和第一路径确定模块;所述第一抓取单元在所述基础页面及其脚本的抓取过程中下载各D0M节点,并将当前 下载到的D0M节点发送给所述第一判断模块,直至结束所有D0M节点的下载后,向所述第一 路径确定模块发送确定通知;所述第一判断模块,用于判断当前下载到的D0M节点是否为script标签,如果是,触发 所述第一抓取单元下载下一个D0M节点,否则,向所述第二判断模块发送判断通知;所述第二判断模块,用于判断当前下载到的D0M节点是否含有D0M事件以及回调函数, 如果否,触发所述第一抓取单元下载下一个D0M节点,如果是,向所述第一路径生成模块发 送执行通知;所述第一路径生成模块,用于接收到所述执行通知后,利用当前下载到的DOM节点产 生状态路径,并将产生的状态路径保存在状态路径队列中,触发所述第一抓取单元下载下 一个D0M节点;所述第一路径确定模块,用于接收到所述确定通知时,触发所述第二抓取单元逐一获 取状态队列中各状态路径对应的目标页面,根据所述第二抓取单元的获取结果判断是否产 生新的页面内容或发生页面跳转,将产生的新的页面内容或发生页面跳转的状态路径确定 为所述基础页面对应的状态路径。
14.根据权利要求12所述的装置,其特征在于,所述分析单元具体包括第三判断模 块、第四判断模块、第二路径生成模块和第二路径确定模块;所述第一抓取单元在所述基础页面及其脚本的抓取过程中下载各D0M节点,并将当前 下载到的D0M节点发送给所述第三判断模块,直至结束所有D0M节点的下载;所述第三判断模块,用于判断当前下载的D0M节点是否为script标签,如果是,触发所 述第一抓取单元下载下一个D0M节点,否则,向所述第四判断模块发送判断通知;所述第四判断模块,用于判断当前下载到的D0M节点是否含有D0M事件以及回调函数, 如果否,触发所述第一抓取单元下载下一个D0M节点,如果是,向所述第二路径生成模块发 送执行通知;所述第二路径生成模块,用于接收到执行通知时,利用当前下载到的D0M节点包含的 D0M事件产生状态路径,并将产生的状态路径发送给所述第二路径确定模块;第二路径确定模块,用于接收到状态路径时,触发所述第二抓取单元获取该状态路径 所对应的目标页面,根据所述第二抓取单元的获取结果,判断是否产生新的页面内容或产 生页面跳转,如果是,确定该状态路径为所述基础页面对应的状态路径,触发所述第一抓取 单元下载下一个D0M节点,否则触发所述第一抓取单元下载下一个D0M节点。
15.根据权利要求13或14所述的装置,其特征在于,判断是否发生页面跳转包括如 果获取的目标页面和所述基础页面的URL不同,则确定发生页面跳转。
16.根据权利要求13或14所述的装置,其特征在于,判断是否产生新的页面内容包括 将获取的目标页面和所述基础页面进行句子签名或字符串比对,如果比对结果表明目标页 面和基础页面具有不同的页面内容,则确定产生新的页面内容;或者,计算获取的目标页面和所述基础页面的相似度,如果计算结果表明目标页面和基础页 面具有不同的页面内容,则确定产生新的页面内容。
17.根据权利要求12至14任一权项所述的装置,其特征在于,所述D0M事件的位置信 息包括D0M节点标识、D0M节点的路径Xpath以及D0M事件标识。
18.根据权利要求12至14任一权项所述的装置,其特征在于,该装置还包括存储单元,用于存储所述分析单元产生的基础页面对应的状态路径以及所述第二抓取 单元所抓取目标页面的快照,建立并存储目标页面的索引。
19.一种搜索引擎,其特征在于,该搜索引擎包括如权利要求18所述的装置、用户接 口单元和搜索处理单元;所述用户接口单元,用于接收来自浏览器的搜索请求,并将该搜索请求中包含的关键 词发送给所述搜索处理单元;将所述搜索处理单元发送来的搜索结果返回给浏览器,供浏 览器利用用户选择的状态路径获取对应的目标页面;所述搜索处理单元,用于将所述关键词与所述装置中存储单元存储的目标页面的索引 进行匹配,将匹配到的目标页面所对应的状态路径包含在搜索结果中发送给所述用户接口 单元。
20.根据权利要求19所述的搜索引擎,其特征在于,所述搜索结果中还包括所述匹配 的目标页面的快照信息;所述用户接口单元,还用于将浏览器返回的用户选择的目标页面的快照信息发送给所 述搜索处理单元;将所述搜索处理单元发送来的目标页面的快照返回给所述浏览器;所述搜索处理单元,还用于根据所述用户选择的目标页面的快照信息,从所述存储单 元中获取对应的目标页面的快照并发送给所述用户接口单元。
21.根据权利要求19所述的搜索引擎,其特征在于,该搜索引擎还包括路径解析单元 和网络接口单元;所述用户接口单元,还用于接收到浏览器发送的用户选择的状态路径后,将该状态路 径发送给所述路径解析单元;所述路径解析单元,用于根据接收到的状态路径生成目标页面请求; 所述网络接口单元,用于将所述路径解析单元生成的目标页面请求发送给目标页面站点o
22.一种浏览器,其特征在于,该浏览器包括网络侧接口单元、路径解析单元和用户 侧接口单元;所述网络侧接口单元,用于接收如权利要求19所述搜索引擎发送来的包含状态路径 的搜索结果;将所述路径解析单元发送来的目标页面请求发送给目标页面站点;所述用户侧接口单元,用于将所述网络侧接口单元接收到的搜索结果显示给用户;将 用户选择的状态路径发送给所述路径解析单元;所述路径解析单元,用于根据用户选择的状态路径生成目标页面请求并发送给所述网 络侧接口单元。
全文摘要
本发明提供了一种获取目标页面的方法、装置、搜索引擎和浏览器,其中方法包括搜索引擎抓取所接收到统一资源定位符(URL)对应的基础页面以及该基础页面的脚本;对抓取的基础页面和脚本进行分析,产生基础页面对应的一条以上包含动态信息的状态路径,利用产生的状态路径抓取目标页面;其中,所述状态路径包含基础页面的URL、基础页面中产生动态信息的文档对象模型(DOM)事件的位置信息以及DOM事件对应的回调函数索引。本发明使得搜索引擎在搜索目标页面时能够抓取页面中的动态内容。
文档编号G06F17/30GK101984429SQ201010531460
公开日2011年3月9日 申请日期2010年11月4日 优先权日2010年11月4日
发明者潘云泓 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1