CN101515300B - 一种Ajax网页内容的抓取方法及系统 - Google Patents

一种Ajax网页内容的抓取方法及系统 Download PDF

Info

Publication number
CN101515300B
CN101515300B CN2009101336305A CN200910133630A CN101515300B CN 101515300 B CN101515300 B CN 101515300B CN 2009101336305 A CN2009101336305 A CN 2009101336305A CN 200910133630 A CN200910133630 A CN 200910133630A CN 101515300 B CN101515300 B CN 101515300B
Authority
CN
China
Prior art keywords
javascript
ajax
function
code
web page
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
CN2009101336305A
Other languages
English (en)
Other versions
CN101515300A (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.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2009101336305A priority Critical patent/CN101515300B/zh
Publication of CN101515300A publication Critical patent/CN101515300A/zh
Priority to HK10101951.3A priority patent/HK1136053A1/xx
Priority to EP10759351A priority patent/EP2414929A4/en
Priority to US12/863,320 priority patent/US8413044B2/en
Priority to JP2012503668A priority patent/JP5695027B2/ja
Priority to PCT/US2010/029444 priority patent/WO2010114913A1/en
Application granted granted Critical
Publication of CN101515300B publication Critical patent/CN101515300B/zh
Priority to US13/756,886 priority patent/US9767082B2/en
Priority to JP2015021591A priority patent/JP5990605B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Abstract

本申请公开了一种Ajax网页内容的抓取方法及系统。一种Ajax网页内容的抓取方法包括:获取网页代码信息;提取所述网页代码信息中的JavaScript信息;解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。以上技术方案,通过解析网页代码中的JavaScript脚本信息,获得网页代码中包含Ajax调用的函数,进一步触发这些函数,即可得到由这些包含Ajax调用的函数所生成的网页内容,实现对Ajax网页中动态内容的抓取。应用以上技术方案,搜索引擎可以收录更为完整的网页内容,为搜索用户提供更好的检索服务。

Description

一种Ajax网页内容的抓取方法及系统
技术领域
本发明涉及网络技术领域,特别是涉及一种Ajax网页内容的抓取方法及系统。
背景技术
Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种创建交互式网页应用的网页开发技术。对于传统的网页,如果页面上的部分内容进行了更新,则用户需要刷新整个页面之后才能看到更新后的内容。而对于Ajax网页,用户可以在不刷新整个页面的情况下,仅去获取更新部分的内容。这样,对于网络侧设备,能够避免重复传输那些没有改变过的信息,从而节省网络带宽资源,减轻服务器的负担;而对于用户而言,能够有效减少浏览网页过程中的等待时间,提升了用户体验。
搜索引擎是一种能够搜集互联网信息,并对信息进行组织和处理、为用户提供检索服务的系统,目前已经成为用户上网必不可少的辅助工具之一。搜索引擎的一个重要组成部分是网络爬虫,它能够自动抓取网页内容,为搜索引擎提供实时更新的数据。现有的网络爬虫能够较好地支持传统的网页,但是对于Ajax网页中由Ajax动态生成的内容,网络爬虫无法有效地抓取。这些Ajax网页中的动态内容也就无法被搜索引擎所收录,进而导致搜索引擎无法为用户提供内容完整的检索服务。
发明内容
有鉴于此,本申请提供了一种Ajax网页内容的抓取方法及系统,以解决Ajax网页中的动态内容无法被搜索引擎所收录的问题,技术方案如下:
本申请提供一种Ajax网页内容的抓取方法,包括:
获取网页代码信息;
提取所述网页代码信息中的JavaScript信息;
解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;
触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。
本申请还提供一种Ajax网页内容抓取系统,包括:
网页代码获取单元,用于获取网页代码信息;
脚本提取单元,用于提取所述网页代码信息中的JavaScript信息;
脚本解析单元,用于解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;
网页内容获得单元,用于触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。
以上技术方案,通过解析网页代码中的JavaScript信息,获得网页代码中包含Ajax调用的函数,进一步触发这些函数,即可得到由这些包含Ajax调用的函数所生成的网页内容,实现对Ajax网页中动态内容的抓取。应用以上技术方案,搜索引擎可以收录更为完整的网页内容,为搜索用户提供更完善的检索服务。
附图说明
图1为本申请实施例实现Ajax网页内容抓取方法的流程图;
图2为本申请实施例实现提取网页代码信息中JavaScript信息的方法流程图;
图3为本申请实施例Ajax网页内容抓取系统的结构示意图;
图4为本申请实施例脚本提取单元的结构示意图;
图5为本申请实施例脚本解析单元的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请所提供的技术方案,下面结合附图对本申请的实施方式作进一步的详细说明。
图1所示为本申请所提供的一种Ajax网页内容抓取方法的流程图,包括以下步骤:
S101,获取网页代码信息;
本步骤与传统网络爬虫的工作机制类似,通过URL(Uniform Resource Locator,统一资源定位符)地址由网络中读取该地址所对应的网页代码信息。
S102,提取网页代码信息中的JavaScript信息;
获取网页的代码信息之后,首先提取其中的JavaScript(Java脚本)信息。以HTML(Hyper Text Mark-up Language,超文本标记语言)代码为例,在HTML代码中加入JavaScript信息的形式一般包括以下两种:
1)将JavaScript代码直接嵌入HTML代码中;
2)将JavaScript代码放入外部文件,并在HTML代码中引用该外部文件。
对于形式1),其具体实现可以是将JavaScript代码放在HTML代码的标记对<script>和</script>之间,一般格式如下:
<script type=″text/javascript″>
//js代码
</script>
上面格式中<script>标记对之间的部分,即为JavaScript代码,在<script>标记对之间,可以包括多条JavaScript语句。标记<script>既可以出现在HTML代码的<head>(头部)部分,也可以出现在HTML代码的<body>(主体)部分。
对于形式2),JavaScript代码放在外部文件中,在HTML代码中通过<script>标记的src属性来引用该外部文件,一般格式如下:
<script type=″text/javascript″src=″js/test.js″></script>
Scr的属性值用于指定JavaScript文件的存放路径和文件名,其中存放路径可以是绝对路径也可以是相对路径。在上面的格式中,“test.js”即为所引用的JavaScript文件名,“js/”为存放该文件的路径。JavaScript文件的扩展名通常是.js,只包含纯粹的JavaScript代码,其中既没有<script>标记,也没有其他HTML标记。
根据上述两种形式,可以通过查询网页代码中的<script>标记来提取HTML代码中的JavaScript信息,参见图2所示,提取网页代码信息中的JavaScript信息的方法可以包括以下步骤:
S102a,查询网页代码中的JavaScript标记。
S102b,判断JavaScript标记后的JavaScript信息类型。如果是JavaScript 代码,则执行S102c,如果是JavaScript文件,则执行S102d。
S102c,提取JavaScript标记对之间的JavaScript代码。
S102d,提取JavaScript文件的存放路径和文件名。
对于一段HTML文件代码,执行上述步骤遍历所有<script>标记的节点之后,将得到若干段JavaScript代码,和/或若干JavaScript文件及其存放路径。可以将所有提取到的JavaScript代码都保存到一个临时的.js文件中,(例如命名为temp.js)。而对于JavaScript文件,本申请的技术方案中,不需要对所有JavaScript文件的代码进行分析,在本步骤中,可以只将所提取到的JavaScript文件名及存放路径保存起来。
S103,解析JavaScript信息,确定网页代码中包含Ajax调用的函数。
在网页代码中所引用的JavaScript文件,一般包括两类,一类是JavaScript的框架文件,这类文件一般都有固定的文件命名,例如prototype.js;另一类则是非JavaScript框架文件。在一段网页代码中,包含Ajax调用的函数是在非JavaScript框架文件中所定义的,因此,对于JavaScript的框架文件,不需要对其内容做进一步的解析,但是可以根据其文件名,找到和其框架类型相对应的特征值,并根据该特征值来找到非JavaScript框架文件中所定义的包含Ajax调用的函数,然后进一步找到网页代码信息中包含Ajax调用的函数。具体步骤如下:
S103a,根据JavaScript文件名,确定JavaScript文件类型。
根据前述方法,确定JavaScript文件是框架文件还是非框架文件。如果是框架文件,则获得其所对应的特征值。
S103b,根据Ajax特征值,确定非JavaScript框架文件中所定义的包含Ajax调用的函数。
在JavaScript文件中,所有包含Ajax调用的函数,其中必然包含一段特定的代码,称之为Ajax特征值。因此,可以根据函数中是否包含这些特征值,判断函数中是否包含Ajax调用。
Ajax特征值可以分为两类,除了前面所提到的各种JavaScript框架类型所对应的特征值之外,还有一种情况是不使用任何JavaScript框架类型调用Ajax时的特征值。可以预先将这些特征值保存在一个数据库文件中,通过将非JavaScript框架文件中的函数代码和这些特征进行匹配,就能够确定哪些函数包含了Ajax调用。
S103c,根据S103b的结果,进一步确定网页代码中包含Ajax调用的函数。
假设在网页代码中所使用的函数构成集合A;而在S 103b中所确定的包含Ajax调用的函数构成集合B,则A和B的交集部分,就是最终所需要的网页代码中包含Ajax调用的函数。而对于在网页中没有调用的函数,即属于集合B而不属于集合A的函数,可以不对其做进一步的处理。
需要说明的是,如果在S102中所获得的JavaScript信息仅包含JavaScript代码而没有JavaScript文件,则也可以省略S103a的步骤,而前述的用于保存JavaScript代码的临时文件temp.js,在这里也应该将其视为非框架文件处理。
S104,触发所确定的包含Ajax调用的函数,获得由这些函数所生成的网页内容。
确定页面代码中的哪些函数中包含Ajax调用之后,通过触发这些函数,就可以得到Ajax动态生成的网页内容。
很多包含Ajax调用的函数是由用户操作来触发的,例如鼠标点击、选择等,这些操作可以通过模拟浏览器的操作来实现。具体来说,可以利用一些Web自动化测试工具所提供的API(Application Programming Interface,应用程序编程接口)来模拟用户在浏览器中所执行的相关操作。例如,通过上述S101-S103的步骤,得知在“http://www.test.com”网页上的getinfo函数包含Ajax调用,并且该函数由鼠标点击动作所触发,那么可以用以下方法来模拟触发该函数:
IE ie=new IE();
//模拟打开浏览器的操作
ie.start(″http://www.test.com″);
//模拟在浏览器中输入http://www.test.com,打开这个页面
HtmlElement e=ie.htmlElement(attribute(″onclick″,″getInfo″));
//找到click调用JavaScript函数getInfo的元素节点
e.click();
//模拟鼠标点击这个元素节点的操作
模拟鼠标点击后,即触发了该函数,相应地也就可以得到该函数所动态生成的内容。
以上技术方案,通过解析网页代码中的JavaScript信息,获得网页代码中包含Ajax调用的函数,进一步触发这些函数,即可得到由这些包含Ajax调用的函数所生成的网页内容,实现对Ajax网页中动态内容的抓取。应用以上技术方案,搜索引擎可以收录更为完整的网页内容,为搜索用户提供更好的检索服务。
下面将结合一个具体的实施例,对本申请的Ajax网页内容抓取方法进行说明,以下步骤S201-S204的详细描述,可以相应参照S101-S104中的文字说明。
S201,获取网页代码信息;
假设根据URL地址,获取某网页的代码信息如下:
<!DOCTYPE HTML PUBLIC″-//W3C//DTD HTML 4.01//EN″
″http://www.w3.org/TR/html4/strict.dtd″>
<html lang=″en″>
<head>
<script type=″text/javascript″src=″js/prototype.js″/>
<script type=″text/javascript″src=″js/ajax.js″/>
<title>AJAX,Web 2.0example</title>
<link rel=″stylesheet″type=″text/css″href=″css/style.css″/>
</head>
<body>
<div id=″navhover″>
<img src=″img/hammer.jpg″alt=″Builders″>
<img src=″img/lightbulb.jpg″alt=″Electricians″>
<img src=″img/wrench.jpg″alt=″Plumbers″>
<img src=″img/axi.jpg″alt=″Taxis″>
</div>
<div id=″nav″>
<ul>
<li><a href=″#″onclick=″getInfo(1);″id=″nav1″
title=″Electricians″><span>Builders</span></a></li>
<li><a href=″#″onclick=″getInfo(2);″id=″nav2″
title=″Plumbers″><span>Electricians</span></a></li>
<li><a href=″#″onclick=″getInfo(3);″id=″nav3″
title=″Builders″><span>Plumbers</span></a></li>
</ul>
<ul>
<li><img src=″img/taxi.jpg″onclick=′getInfo(4);′id=″img″name=″img″
style=″cursor:hand″></li>
</ul>
</div>
<div id=″results″>Search results...</div>
</body>
</html>
需要说明的是,本实施所提供的实际代码仅用于对所提供的技术方案进行示意性说明,并不构成对技术方案的限制。
S202,提取网页代码信息中的JavaScript信息;
根据S102中的所述,可以看出,上面的代码中没有直接嵌入的JavaScript代码,但是有对JavaScript文件的引用,即位于<head>部分的“prototype.js”和“ajax.js”两个文件,可以将这两个文件的路径、文件名等信息保存起来。
S203,解析JavaScript信息,确定网页代码中包含Ajax调用的函数。
S203a,根据在S202中提取到的两个JavaScript文件的命名,可以确定“prototype.js”为框架文件,而“ajax.js”为非框架文件。
S203b,根据所引用的两个JavaScript文件的类型,可以得知在这个页面中,如果存在Ajax的调用,那么相关的Ajax特征值有两种可能:第一种是prototype框架中提供的Ajax调用方式,其特征值为:
“new Ajax.Request”;
另一种是不使用任何JavaScript框架的情况,其特征值为:
“new ActiveXObject(″Microsoft.XMLHTTP″)”。
然后进一步对非框架文件“ajax.js”进行分析,假设“ajax.js”的代码内容如下:
function getInfo(id){
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject(″Microsoft.XMLHTTP″);
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==1){
document.getElementById(′results′).innerHTML=′Loading...′;
}
if(xmlhttp.readyState==4){
var response=xmlhttp.responseText;
document.getElementById(′results′).innerHTML=response;
}
}
xmlhttp.open(′get′,′data.jsp?company=′+id,true);
xmlhttp.send(″company=″+id);
}
function getDate()
{
var date=new Date();
var year=date.getYear();
var month=date.getMonth()+1;
var day=date.getDay();
return
year+″″+(month>=10?month:(″0″+″″+month))+″″+(day>=10?day:(″0″+″″+day));
}
function getDateTime()
{
var date=new Date();
var localeString=date.toLocaleString();
return localeString;
}
function sameToBilling(obj)
{
var my=new Ajax.Request(url,
{
method:′get′,
parameters:pars,
asynchronous:true,
onComplete:showResponse
});
}
可以看出,在“ajax.js”中共定义了4个函数,分别是getInfo()、getDate()、getDateTime()和sameToBilling();而且在函数getInfo()中出现了特征值“new ActiveXObject(″Microsoft.XMLHTTP″)”、在函数sameToBilling()中出现了特征值new Ajax.Request,因此,可以确定getInfo()和sameToBilling()为包含Ajax调用的函数。
S203c,通过取网页代码中所使用的函数集合A,与所引用的JavaScript 文件中包含Ajax调用的函数集合B的交集,可以确定getInfo()即为网页代码信息中包含Ajax调用的函数。而sameToBilling()函数由于在页面中并没有调用,因此可以不必对其做进一步的处理。
S204,触发所确定的包含Ajax调用的函数,获得由这些函数所生成的网页内容。
通过模拟onclick(鼠标点击)动作,触发getInfo(),获得由其所生成的网页内容。
由上述实施例可以看出,本申请所提供的方案,通过分析网页代码,根据Ajax特征值来确定哪些由引用文件所定义的函数存在Ajax调用,在此范围内,进一步找出在网页上实际调用了哪些函数,并通过模拟执行这些函数来获得网页内容,避免了对与网页内容无关函数的执行,从而也提高了抓取动态网页内容的效率。
相应于上面的方法实施例,本发明实施例还提供一种Ajax网页内容抓取系统,参见图3所示,包括:
网页代码获取单元310,用于获取网页代码信息;
脚本提取单元320,用于提取所述网页代码信息中的JavaScript信息;
脚本解析单元330,用于解析所述JavaScript信息,确定所述网页代码中包含Ajax调用的函数;
网页内容获得单元340,用于触发所确定的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。
其中,所述JavaScript信息,可以包括JavaScript文件和/或JavaScript代码。
参见图4所示,所述脚本提取单元320,可以包括:
查询子单元321,用于查询网页代码中的JavaScript标记;
第一提取子单元322,用于在JavaScript标记后的JavaScript信息为JavaScript代码时,提取所述JavaScript代码,将所提取的代码保存于JavaScript文件中;
第二提取子单元323,用于在JavaScript标记后的JavaScript信息为 JavaScript文件时,提取所述JavaScript文件的存放路径和文件名。
参见图5所示,所述脚本解析单元330,可以包括:
第一确定子单元331,用于根据Ajax特征值,确定所述JavaScript文件中所定义的包含Ajax调用的函数;所述Ajax特征值为:可标识函数中存在Ajax调用的代码段;
第二确定子单元332,用于进一步在所述第一确定子单元所确定的函数中,确定网页代码中包含Ajax调用的函数。
其中,所述Ajax特征值可以包括:使用JavaScript框架类型调用Ajax所对应的特征值,和/或不使用JavaScript框架类型调用Ajax所对应的特征值。
所述第一确定子单元331,具体可以用于确定在页面引用中的非JavaScript框架文件中所定义的包含Ajax调用的函数。
所述网页内容获得单元340,具体可以用于通过模拟用户操作,触发所获得的包含Ajax调用的函数,获得由所述包含Ajax调用的函数生成的网页内容。
对于系统实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
为了描述的方便,描述以上系统时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请中的实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请中的实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请中的各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

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调用的函数生成的网页内容。
CN2009101336305A 2009-04-02 2009-04-02 一种Ajax网页内容的抓取方法及系统 Active CN101515300B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN2009101336305A CN101515300B (zh) 2009-04-02 2009-04-02 一种Ajax网页内容的抓取方法及系统
HK10101951.3A HK1136053A1 (en) 2009-04-02 2010-02-24 Method for retrieving ajax web page content and system thereof
JP2012503668A JP5695027B2 (ja) 2009-04-02 2010-03-31 Ajaxウェブページコンテンツを取得する方法およびシステム
US12/863,320 US8413044B2 (en) 2009-04-02 2010-03-31 Method and system of retrieving Ajax web page content
EP10759351A EP2414929A4 (en) 2009-04-02 2010-03-31 METHOD AND SYSTEM FOR EXTRACTING AJAX INTERNET PAGE CONTENT
PCT/US2010/029444 WO2010114913A1 (en) 2009-04-02 2010-03-31 Method and system of retrieving ajax web page content
US13/756,886 US9767082B2 (en) 2009-04-02 2013-02-01 Method and system of retrieving ajax web page content
JP2015021591A JP5990605B2 (ja) 2009-04-02 2015-02-05 Ajaxウェブページコンテンツを取得する方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101336305A CN101515300B (zh) 2009-04-02 2009-04-02 一种Ajax网页内容的抓取方法及系统

Publications (2)

Publication Number Publication Date
CN101515300A CN101515300A (zh) 2009-08-26
CN101515300B true CN101515300B (zh) 2011-07-20

Family

ID=41039753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101336305A Active CN101515300B (zh) 2009-04-02 2009-04-02 一种Ajax网页内容的抓取方法及系统

Country Status (6)

Country Link
US (2) US8413044B2 (zh)
EP (1) EP2414929A4 (zh)
JP (2) JP5695027B2 (zh)
CN (1) CN101515300B (zh)
HK (1) HK1136053A1 (zh)
WO (1) WO2010114913A1 (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539337B2 (en) * 2008-02-21 2013-09-17 International Business Machines Corporation Internet services and methods thereof
US8898623B2 (en) * 2008-12-30 2014-11-25 The Regents Of The University Of California Application design and data flow analysis
CN101515300B (zh) 2009-04-02 2011-07-20 阿里巴巴集团控股有限公司 一种Ajax网页内容的抓取方法及系统
CN102005130B (zh) * 2009-09-03 2014-01-22 上海宝信软件股份有限公司 基于WebGIS的智能交通设备实时状态显示系统
US9052908B2 (en) * 2010-01-22 2015-06-09 The Regents Of The University Of California Web application development framework
CN102236546B (zh) * 2010-04-30 2014-03-12 英业达股份有限公司 搜寻互动元素以执行对应脚本的系统及其方法
CN102262635A (zh) * 2010-05-25 2011-11-30 北京启明星辰信息技术股份有限公司 一种网页爬虫系统及方法
EP2413265B1 (en) * 2010-07-29 2017-10-18 Tata Consultancy Services Ltd. A system and method for classification of moving object during video surveillance
CN102479231A (zh) * 2010-11-24 2012-05-30 财团法人资讯工业策进会 网页攀爬方法及其装置
CN102073728A (zh) * 2011-01-13 2011-05-25 百度在线网络技术(北京)有限公司 一种用于确定网页访问请求的方法、装置及设备
US8646050B2 (en) * 2011-01-18 2014-02-04 Apple Inc. System and method for supporting JIT in a secure system with randomly allocated memory ranges
US9805135B2 (en) * 2011-03-30 2017-10-31 Cbs Interactive Inc. Systems and methods for updating rich internet applications
US8527862B2 (en) 2011-06-24 2013-09-03 Usablenet Inc. Methods for making ajax web applications bookmarkable and crawlable and devices thereof
CN102880618A (zh) 2011-07-15 2013-01-16 国际商业机器公司 用于网页文档搜索的方法及系统
CN102902581B (zh) 2011-07-29 2016-05-11 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
CN103020087A (zh) * 2011-09-26 2013-04-03 百度在线网络技术(北京)有限公司 点击日志的生成方法及装置,搜索结果调整方法及装置
CN102609481A (zh) * 2012-01-20 2012-07-25 苏州简拔林网络科技有限公司 一种评论信息的实时更新汇总方法
CN102609518B (zh) * 2012-02-09 2015-02-18 清华大学 多状态ajax网页内容获取方法及系统
CN102662737B (zh) * 2012-03-14 2014-06-11 优视科技有限公司 扩展程序的调用方法及装置
CN103365919B (zh) * 2012-04-09 2018-07-31 北京京东尚科信息技术有限公司 网页解析容器及方法
CN103577427A (zh) * 2012-07-25 2014-02-12 中国移动通信集团公司 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器
CN103678321B (zh) * 2012-09-03 2017-11-24 阿里巴巴集团控股有限公司 页面元素确定方法及设备、用户行为路径确定方法及装置
CN102929599B (zh) * 2012-09-26 2015-12-02 广州市动景计算机科技有限公司 移动终端浏览器界面的修改方法及装置、移动终端
CN103853717B (zh) * 2012-11-28 2018-10-12 北京京东尚科信息技术有限公司 网络爬虫系统
WO2014120128A1 (en) * 2013-01-29 2014-08-07 Hewlett-Packard Development Company, L.P. Analyzing structure of web application
CN103268361B (zh) * 2013-06-07 2019-05-31 百度在线网络技术(北京)有限公司 网页中隐藏url的提取方法、装置和系统
CN104111836A (zh) * 2014-07-14 2014-10-22 浪潮软件集团有限公司 一种网络采集处理异步加载数据的方法
US9772829B2 (en) * 2014-09-09 2017-09-26 Liveperson, Inc. Dynamic code management
US11120461B1 (en) 2014-11-06 2021-09-14 Capital One Services, Llc Passive user-generated coupon submission
US11068921B1 (en) 2014-11-06 2021-07-20 Capital One Services, Llc Automated testing of multiple on-line coupons
US10649740B2 (en) * 2015-01-15 2020-05-12 International Business Machines Corporation Predicting and using utility of script execution in functional web crawling and other crawling
EP3258700A4 (en) * 2015-02-13 2017-12-20 Panasonic Intellectual Property Management Co., Ltd. Content reproduction system, video recording apparatus, terminal apparatus, and content reproduction method
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN106294397B (zh) * 2015-05-20 2019-10-25 无锡天脉聚源传媒科技有限公司 一种获取任务的方法及装置
CN104965901A (zh) * 2015-06-30 2015-10-07 北京奇虎科技有限公司 一种目标页面内容抓取方法和装置
CN105183453B (zh) * 2015-08-07 2019-04-02 安一恒通(北京)科技有限公司 基于网页的信息获取方法及装置
CN105243088B (zh) * 2015-09-09 2019-10-01 深圳Tcl数字技术有限公司 Android系统中获取网页内容的方法及装置
US10082937B2 (en) 2015-09-11 2018-09-25 International Business Machines Corporation Intelligent rendering of webpages
CN105183886A (zh) * 2015-09-25 2015-12-23 中国民生银行股份有限公司 网页内容提取方法及装置
WO2017062678A1 (en) * 2015-10-07 2017-04-13 Impossible Ventures, LLC Automated extraction of data from web pages
CN105740419A (zh) * 2016-01-29 2016-07-06 广州酷狗计算机科技有限公司 获取网页中动态加载内容的方法及装置
US10223353B1 (en) * 2016-09-20 2019-03-05 Amazon Technologies Dynamic semantic analysis on free-text reviews to identify safety concerns
CN106959995A (zh) * 2016-12-21 2017-07-18 四川长虹电器股份有限公司 兼容双向自动化网页内容采集方法
CN108306918B (zh) * 2017-01-13 2021-08-31 南京邮电大学盐城大数据研究院有限公司 一种基于程序动态分析的网站访问信息自动获取方法
CN106991188A (zh) * 2017-04-11 2017-07-28 焦点科技股份有限公司 一种高效的互联网动态数据自动筛选与抓取方法及系统
US11205188B1 (en) 2017-06-07 2021-12-21 Capital One Services, Llc Automatically presenting e-commerce offers based on browse history
CN109150984B (zh) * 2018-07-27 2021-11-02 平安科技(深圳)有限公司 获取数据资源的方法和装置
CN108984801A (zh) * 2018-08-22 2018-12-11 百卓网络科技有限公司 一种基于html标签识别异步加载内容的搜索引擎优化方法
JP7018202B2 (ja) * 2018-11-27 2022-02-10 株式会社クリエイト 掲載情報検索システム
US11483371B2 (en) 2020-11-23 2022-10-25 International Business Machines Corporation User-derived webpage activity control
CN113076460A (zh) * 2021-05-07 2021-07-06 北京华云安信息技术有限公司 页面数据爬取方法、装置、设备和计算机可读存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US7346920B2 (en) * 2000-07-07 2008-03-18 Sonic Solutions, A California Corporation System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
AU2002258769A1 (en) 2001-04-09 2002-10-21 America Online Incorporated Server-based browser system
WO2003009202A1 (en) * 2001-07-19 2003-01-30 Live Capsule, Inc. Method for transmitting a transferable information packet
US7752326B2 (en) * 2001-08-20 2010-07-06 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
US20060190561A1 (en) * 2002-06-19 2006-08-24 Watchfire Corporation Method and system for obtaining script related information for website crawling
US8032860B2 (en) * 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7454410B2 (en) 2003-05-09 2008-11-18 International Business Machines Corporation Method and apparatus for web crawler data collection
US7685296B2 (en) 2003-09-25 2010-03-23 Microsoft Corporation Systems and methods for client-based web crawling
US7584194B2 (en) * 2004-11-22 2009-09-01 Truveo, Inc. Method and apparatus for an application crawler
EP1831796A4 (en) 2004-11-22 2010-01-27 Truveo Inc METHOD AND DEVICE FOR AN APPLICATION CRAWLER
EP1662405A1 (en) * 2004-11-30 2006-05-31 Alcatel Method of displaying data on a client computer
US7536389B1 (en) 2005-02-22 2009-05-19 Yahoo ! Inc. Techniques for crawling dynamic web content
US7636883B2 (en) * 2005-05-18 2009-12-22 International Business Machines Corporation User form based automated and guided data collection
US7506248B2 (en) * 2005-10-14 2009-03-17 Ebay Inc. Asynchronously loading dynamically generated content across multiple internet domains
US7725574B2 (en) * 2006-01-23 2010-05-25 International Business Machines Corporation Web browser-based programming language error determination and reporting
US20080040653A1 (en) * 2006-08-14 2008-02-14 Christopher Levine System and methods for managing presentation and behavioral use of web display content
JP2008071048A (ja) * 2006-09-13 2008-03-27 Nippon Telegr & Teleph Corp <Ntt> 動的コンテンツ提示システム及びそのプログラム
JP2008107987A (ja) * 2006-10-24 2008-05-08 Logly Kk 情報提供装置及び情報提供方法
JP2008186160A (ja) 2007-01-29 2008-08-14 Fuji Xerox Co Ltd 文書表示装置およびプログラム
US7774788B2 (en) 2007-03-07 2010-08-10 Ianywhere Solutions, Inc. Selectively updating web pages on a mobile client
US8065667B2 (en) * 2007-03-20 2011-11-22 Yahoo! Inc. Injecting content into third party documents for document processing
US9594731B2 (en) * 2007-06-29 2017-03-14 Microsoft Technology Licensing, Llc WYSIWYG, browser-based XML editor
US9563718B2 (en) 2007-06-29 2017-02-07 Intuit Inc. Using interactive scripts to facilitate web-based aggregation
US8131591B2 (en) 2007-09-12 2012-03-06 Microsoft Corporation Updating contents of asynchronously refreshable webpages
US7672938B2 (en) 2007-10-05 2010-03-02 Microsoft Corporation Creating search enabled web pages
US8250585B2 (en) * 2007-11-05 2012-08-21 International Business Machines Corporation Extensible framework for managing UI state in a composite AJAX application
US8572065B2 (en) * 2007-11-09 2013-10-29 Microsoft Corporation Link discovery from web scripts
US8527860B1 (en) * 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US7958232B1 (en) * 2007-12-05 2011-06-07 Appcelerator, Inc. Dashboard for on-the-fly AJAX monitoring
US8347405B2 (en) * 2007-12-27 2013-01-01 International Business Machines Corporation Asynchronous java script and XML (AJAX) form-based authentication using java 2 platform enterprise edition (J2EE)
EP2238777B1 (en) * 2008-01-16 2023-10-25 BlackBerry Limited Secured presentation layer virtualization for wireless handheld communication device
CN101546309B (zh) * 2008-03-26 2012-07-04 国际商业机器公司 对计算机网络中的资源内容构建索引的方法和设备
BRPI0924401B1 (pt) * 2009-03-18 2020-05-19 Google Inc métodos, sistemas e meios não-transitórios de armazenamento para tradução de web com substituição de exibição
CN101515300B (zh) 2009-04-02 2011-07-20 阿里巴巴集团控股有限公司 一种Ajax网页内容的抓取方法及系统

Also Published As

Publication number Publication date
JP2015135680A (ja) 2015-07-27
WO2010114913A1 (en) 2010-10-07
US9767082B2 (en) 2017-09-19
EP2414929A4 (en) 2012-11-28
HK1136053A1 (en) 2010-06-18
JP2012523047A (ja) 2012-09-27
CN101515300A (zh) 2009-08-26
JP5990605B2 (ja) 2016-09-14
US8413044B2 (en) 2013-04-02
US20120011431A1 (en) 2012-01-12
EP2414929A1 (en) 2012-02-08
JP5695027B2 (ja) 2015-04-01
US20130145253A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
CN101515300B (zh) 一种Ajax网页内容的抓取方法及系统
US9703883B2 (en) Social bookmarking of resources exposed in web pages
CN105094888B (zh) 一种应用程序插件加载方法及装置
CN102508710B (zh) 一种ie6内核与新型ie内核的切换方法和系统
CN100514323C (zh) 用于自动提取副标题信息的系统和方法
CN103268361B (zh) 网页中隐藏url的提取方法、装置和系统
CN106293675B (zh) 系统静态资源加载方法及装置
US9183004B2 (en) System and method for representing user interaction with a web service
US20050138033A1 (en) Methods, applications and systems for deriving content from network resources
CN104063401B (zh) 一种网页样式地址合并的方法和装置
CN112417243A (zh) 本地应用的搜索结果
CN103577427A (zh) 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器
KR101287371B1 (ko) 웹 컨텐츠 수집방법 및 수집장치, 그 기록매체
JP2004220251A (ja) 情報抽出規則作成システム、情報抽出規則作成方法及び情報抽出規則作成プログラム
CN111680247B (zh) 网页字符串的本地调用方法、装置、设备及存储介质
EP2711838A1 (en) Documentation parser
US20120324326A1 (en) Method and apparatus for outputting a multimedia file of a web page
CN101140578B (zh) 多线程分析网页资料的系统及方法
CN110516185B (zh) 动态网站的处理方法及装置
Bröring et al. NOVA: a knowledge base for the Node-RED IoT ecosystem
Sudhamathy Mining web logs: an automated approach
TW201044197A (en) A method and system for capturing contents of Ajax web pages
Wu et al. Web crawler for event-driven crawling of AJAX-based web applications
Jeyalatha et al. Design and Implementation of a Tool for Web Data Extraction and Storage using Java and Uniform Interface
Han et al. Problems, solutions and new opportunities: using pagelet-based templates in development of flexible and extensible web applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1136053

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1136053

Country of ref document: HK

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191217

Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, British Cayman Islands

Patentee after: Innovative advanced technology Co., Ltd

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Patentee before: Alibaba Group Holding Co., Ltd.