识别网页跳转的方法和装置的制造方法

文档序号:8412616阅读:242来源:国知局
识别网页跳转的方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,具体而言,涉及一种识别网页跳转的方法和装置。
【背景技术】
[0002]目前,搜索引擎的蜘蛛在抓取网页的时,需要处理网页发生跳转的情况,网页发生跳转的一种方式为JavaScript跳转:网页服务器返回的网页HTML代码中嵌入了JavaScript代码,这些代码在浏览器端执行时网页才会发生跳转。对于JavaScript跳转,由于JavaScript非常灵活,所以JavaScript跳转的特征并不是十分明显,目前搜索引擎蜘蛛对JavaScript跳转的识别都不是太好。
[0003]目前搜索引擎蜘蛛识别JavaScript跳转的主要方式是正则匹配法,即把JavaScript跳转常见的形式配置成正则表达式,下载完网页后进行正则匹配,匹配上则认为网页发生了跳转并得到跳转结果。这种方法的缺点有两个:一是难以将正则表达式写得比较全;二是对于含有变量或者计算的JavaScript代码下无法采用此方法。
[0004]另外一种容易想到的方法是调用浏览器来执行JavaScript代码,这样就能使蜘蛛对跳转的识别与用户浏览器完全一致。但是这种方法的缺点是需要消耗大量的计算资源,对于少数网页进行识别可行,但是对于大量网页来说,此方法基本不可行。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的识别网页跳转的方法和装置。
[0006]依据本发明的一个方面,提供了一种识别网页跳转的方法,其包括:对浏览器中用于处理网页跳转的对象进行模拟,得到用于处理网页跳转的模拟对象;从待识别网页中提取脚本代码,并调用所述模拟对象来执行所述脚本代码;根据执行所述脚本代码的结果,判断所述待识别网页是否发生跳转。
[0007]可选地,前述的方法,对浏览器中用于处理网页跳转的对象进行模拟,得到用于处理网页跳转的模拟对象,进一步包括:仅对所述浏览器中所述对象的用于处理网页跳转的方法和/或属性进行模拟,得到模拟的上下文环境,所述脚本代码在所述模拟的上下文环境中执行。
[0008]可选地,前述的方法,所述模拟的上下文环境中包括用于记录待跳转页面的属性;根据执行所述脚本代码的结果,判断所述待识别网页是否发生跳转,进一步包括:根据所述网页的网址,设置用于记录所述待跳转页面的属性的值;在执行所述脚本代码之后,检查用于记录所述待跳转页面的属性的值是否发生变化;在用于记录所述待跳转页面的属性的值发生变化时,判断需要按变化后的值跳转到所述待跳转页面。
[0009]可选地,前述的方法,所述模拟的上下文环境中包括用于生成页面文件的方法,所述页面文件中存在预定的跳转标签时表示所述页面文件对应的页面为所述待跳转页面;所述方法还包括:在用于记录所述待跳转页面的属性的值未发生变化时,检查所述页面文件中是否存在所述跳转标签;在所述页面文件中存在所述跳转标签时,判断需要跳转至所述页面文件对应的页面。
[0010]可选地,前述的方法,调用所述模拟对象来执行所述脚本代码,具体包括:将所述脚本代码划分为多个段落后依次执行每个段落;在执行完所述每个段落后捕捉异常。
[0011]可选地,前述的方法,将所述脚本代码划分为多个段落后依次执行每个段落,具体包括:按所述脚本代码中的语句和/或语句块为单位,来将所述脚本代码划分为所述多个段落。
[0012]可选地,前述的方法,在按所述脚本代码中的语句和/或语句块为单位,来将所述脚本代码划分为多个段落之前,还包括:从所述脚本代码中查找第一符号,并根据查找到的所述第一符号来识别所述脚本代码中的语句;和/或从所述脚本代码中查找第二符号,并根据查找到的所述第二符号来识别所述脚本代码中的语句块。
[0013]依据本发明的另一方面,提供了一种识别网页跳转的装置,其包括:模拟模块,用于对浏览器中用于处理网页跳转的对象进行模拟,得到用于处理网页跳转的模拟对象;脚本代码执行模块,用于从待识别网页中提取脚本代码,并调用所述模拟对象来执行所述脚本代码;跳转判断模块,用于根据执行所述脚本代码的结果,判断所述待识别网页是否发生跳转。
[0014]可选地,前述的装置,所述模拟模块仅对所述浏览器中所述对象的用于处理网页跳转的方法和/或属性进行模拟,得到模拟的上下文环境,所述脚本代码在所述模拟的上下文环境中执行。
[0015]可选地,前述的装置,所述模拟对象的属性包括用于记录待跳转页面的属性;所述装置还包括:属性设置模块,用于根据所述网页的网址,设置用于记录所述待跳转页面的属性的值;变化检查模块,用于在执行所述脚本代码之后,检查用于记录所述待跳转页面的属性的值是否发生变化;所述跳转判断模块在用于记录所述待跳转页面的属性的值发生变化时,判断需要按变化后的值跳转到所述待跳转页面。
[0016]可选地,前述的装置,所述模拟的上下文环境中包括用于生成页面文件的方法,所述页面文件中存在预定的跳转标签时表示所述页面文件对应的页面为所述待跳转页面;所述装置还包括:标签检查模块,用于在用于记录所述待跳转页面的属性的值未发生变化时,检查所述页面文件中是否存在所述跳转标签;所述跳转判断模块在所述页面文件中存在所述跳转标签时,判断需要跳转至所述页面文件对应的页面。
[0017]可选地,前述的装置,所述脚本代码执行模块将所述脚本代码划分为多个段落后依次执行每个段落;所述装置还包括:异常捕捉模块,用于在执行完所述每个段落后捕捉异常。
[0018]可选地,前述的装置,所述脚本代码执行模块按所述脚本代码中的语句和/或语句块为单位,来将所述脚本代码划分为所述多个段落。
[0019]可选地,前述的装置,还包括:语句识别模块,用于从所述脚本代码中查找第一符号,并根据查找到的所述第一符号来识别所述脚本代码中的语句;和/或语句块识别模块,用于从所述脚本代码中查找第二符号,并根据查找到的所述第二符号来识别所述脚本代码中的语句块。
[0020]根据以上技术方案,可知本发明的识别网页跳转的方法和装置至少具有以下优占.V.
[0021]在本发明的技术方案中,基于对网页中的脚本代码(例如JavaScript)的执行来识别网页跳转,但并非是调用浏览器来执行网页中的脚本代码,而是通过仅模拟浏览器的用于处理网页跳转的对象,来识别网页跳转;本发明的技术方案比调用浏览器执行网页中的脚本代码来识别跳转的方案效率高出许多倍,原因是在本发明的技术方案中仅模拟了部分与跳转相关的对象,计算资源不会浪费在其他与跳转无关的代码上。
[0022]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0023]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0024]图1示出了根据本发明的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1