著录项信息
专利名称 | 一种Ajax网页内容的抓取方法及系统 |
申请号 | CN200910133630.5 | 申请日期 | 2009-04-02 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2009-08-26 | 公开/公告号 | CN101515300 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 阿里巴巴集团控股有限公司 | 申请人地址 | 英属开曼群岛大开曼岛西湾路802号木槿街大展览馆31119号邮箱
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 创新先进技术有限公司 | 当前权利人 | 创新先进技术有限公司 |
发明人 | 毛雯 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 逯长明;王宝筠 |
摘要
本申请公开了一种Ajax网页内容的抓取方法及系统。一种Ajax网页内容的抓取方法包括:获取网页代码信息;提取所述网页代码信息中的JavaScript信息;解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。以上技术方案,通过解析网页代码中的JavaScript脚本信息,获得网页代码中包含Ajax调用的函数,进一步触发这些函数,即可得到由这些包含Ajax调用的函数所生成的网页内容,实现对Ajax网页中动态内容的抓取。应用以上技术方案,搜索引擎可以收录更为完整的网页内容,为搜索用户提供更好的检索服务。
1.一种Ajax网页内容的抓取方法,其特征在于,包括:
获取网页代码信息;
提取所述网页代码信息中的JavaScript信息;
解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;
触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容;
所述JavaScript信息,包括JavaScript文件和/或JavaScript代码;
所述提取网页代码信息中的JavaScript信息,包括:
查询网页代码中的JavaScript标记;
如果JavaScript标记后的JavaScript信息为JavaScript代码,则提取所述JavaScript代码,将所提取的代码保存于JavaScript文件中;
如果JavaScript标记后的JavaScript信息为JavaScript文件,则提取所述JavaScript文件的存放路径和文件名。
2.根据权利要求1所述的方法,其特征在于,解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数,包括:
根据Ajax特征值,确定所述JavaScript文件中所定义的包含Ajax调用的函数;进一步在这些函数中,确定网页代码中包含Ajax调用的函数;
其中,所述Ajax特征值为:可标识函数中存在Ajax调用的代码段。
3.根据权利要求2所述的方法,其特征在于,所述Ajax特征值包括:
使用JavaScript框架类型调用Ajax所对应的特征值,和/或不使用JavaScript框架类型调用Ajax所对应的特征值。
4.根据权利要求2所述的方法,其特征在于,所述确定JavaScript文件中所定义的包含Ajax调用的函数,包括:
确定在页面引用中的非JavaScript框架文件中所定义的包含Ajax调用的函数。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述触发所获得的包含Ajax调用的函数,包括:
通过模拟用户操作,触发所获得的包含Ajax调用的函数。
6.一种Ajax网页内容抓取系统,其特征在于,包括:
网页代码获取单元,用于获取网页代码信息;
脚本提取单元,用于提取所述网页代码信息中的JavaScript信息;
脚本解析单元,用于解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;
网页内容获得单元,用于触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容;
所述JavaScript信息,包括JavaScript文件和/或JavaScript代码;
所述脚本提取单元,包括:
查询子单元,用于查询网页代码中的JavaScript标记;
第一提取子单元,用于在JavaScript标记后的JavaScript信息为JavaScript代码时,提取所述JavaScript代码,将所提取的代码保存于JavaScript文件中;
第二提取子单元,用于在JavaScript标记后的JavaScript信息为JavaScript文件时,提取所述JavaScript文件的存放路径和文件名。
7.根据权利要求6所述的系统,所述脚本解析单元,包括:
第一确定子单元,用于根据Ajax特征值,确定所述JavaScript文件中所定义的包含Ajax调用的函数;所述Ajax特征值为:可标识函数中存在Ajax调用的代码段;
第二确定子单元,用于进一步在所述第一确定子单元所确定的函数中,确定网页代码中包含Ajax调用的函数。
8.根据权利要求7所述的系统,其特征在于,所述Ajax特征值包括:
使用JavaScript框架类型调用Ajax所对应的特征值,和/或不使用JavaScript框架类型调用Ajax所对应的特征值。
9.根据权利要求7所述的系统,其特征在于,
所述第一确定子单元,用于确定在页面引用中的非JavaScript框架文件中所定义的包含Ajax调用的函数。
10.根据权利要求6至9任一项所述的系统,其特征在于,
所述网页内容获得单元,用于通过模拟用户操作,触发所获得的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。
一种Ajax网页内容的抓取方法及系统 \n技术领域\n[0001] 本发明涉及网络技术领域,特别是涉及一种Ajax网页内容的抓取方法及系统。 背景技术\n[0002] Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种创建交互式网页应用的网页开发技术。对于传统的网页,如果页面上的部分内容进行了更新,则用户需要刷新整个页面之后才能看到更新后的内容。而对于Ajax网页,用户可以在不刷新整个页面的情况下,仅去获取更新部分的内容。这样,对于网络侧设备,能够避免重复传输那些没有改变过的信息,从而节省网络带宽资源,减轻服务器的负担;而对于用户而言,能够有效减少浏览网页过程中的等待时间,提升了用户体验。 \n[0003] 搜索引擎是一种能够搜集互联网信息,并对信息进行组织和处理、为用户提供检索服务的系统,目前已经成为用户上网必不可少的辅助工具之一。搜索引擎的一个重要组成部分是网络爬虫,它能够自动抓取网页内容,为搜索引擎提供实时更新的数据。现有的网络爬虫能够较好地支持传统的网页,但是对于Ajax网页中由Ajax动态生成的内容,网络爬虫无法有效地抓取。这些Ajax网页中的动态内容也就无法被搜索引擎所收录,进而导致搜索引擎无法为用户提供内容完整的检索服务。 \n发明内容\n[0004] 有鉴于此,本申请提供了一种Ajax网页内容的抓取方法及系统,以解决Ajax网页中的动态内容无法被搜索引擎所收录的问题,技术方案如下: \n[0005] 本申请提供一种Ajax网页内容的抓取方法,包括: \n[0006] 获取网页代码信息; \n[0007] 提取所述网页代码信息中的JavaScript信息; \n[0008] 解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数; [0009] 触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。 \n[0010] 本申请还提供一种Ajax网页内容抓取系统,包括: \n[0011] 网页代码获取单元,用于获取网页代码信息; \n[0012] 脚本提取单元,用于提取所述网页代码信息中的JavaScript信息; [0013] 脚本解析单元,用于解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数; \n[0014] 网页内容获得单元,用于触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。 \n[0015] 以上技术方案,通过解析网页代码中的JavaScript信息,获得网页代码中包含Ajax调用的函数,进一步触发这些函数,即可得到由这些包含Ajax调用的函数所生成的网页内容,实现对Ajax网页中动态内容的抓取。应用以上技术方案,搜索引擎可以收录更为完整的网页内容,为搜索用户提供更完善的检索服务。 \n附图说明\n[0016] 图1为本申请实施例实现Ajax网页内容抓取方法的流程图; \n[0017] 图2为本申请实施例实现提取网页代码信息中JavaScript信息的方法流程图; [0018] 图3为本申请实施例Ajax网页内容抓取系统的结构示意图; \n[0019] 图4为本申请实施例脚本提取单元的结构示意图; \n[0020] 图5为本申请实施例脚本解析单元的结构示意图。 \n具体实施方式\n[0021] 为了使本技术领域的人员更好地理解本申请所提供的技术方案,下面结合附图对本申请的实施方式作进一步的详细说明。 \n[0022] 图1所示为本申请所提供的一种Ajax网页内容抓取方法的流程图,包括以下步骤: \n[0023] S101,获取网页代码信息; \n[0024] 本步骤与传统网络爬虫的工作机制类似,通过URL(Uniform Resource Locator,统一资源定位符)地址由网络中读取该地址所对应的网页代码信息。 \n[0025] S102,提取网页代码信息中的JavaScript信息; \n[0026] 获取网页的代码信息之后,首先提取其中的JavaScript(Java脚本)信息。以HTML(Hyper Text Mark-up Language,超文本标记语言)代码为例,在HTML代码中加入JavaScript信息的形式一般包括以下两种: \n[0027] 1)将JavaScript代码直接嵌入HTML代码中; \n[0028] 2)将JavaScript代码放入外部文件,并在HTML代码中引用该外部文件。 [0029] 对于形式1),其具体实现可以是将JavaScript代码放在HTML代码的标记对之间,一般格式如下: \n[0030] \n[0033] 上面格式中 [0036] Scr的属性值用于指定JavaScript文件的存放路径和文件名,其中存放路径可以是绝对路径也可以是相对路径。在上面的格式中,“test.js”即为所引用的JavaScript文件名,“js/”为存放该文件的路径。JavaScript文件的扩展名通常是.js,只包含纯粹的JavaScript代码,其中既没有