本发明专利申请是申请日为2012年3月31日、申请号为201210094032.3、名称为“一种搜索结果页面中链接的连接方法及装置”的中国发明专利申请的分案申请。
发明内容
本申请提供了一种搜索结果页面中链接的连接方法及装置,以解决搜索结果页面中的所述链接不能连接到目标页面的问题。
为了解决上述问题,本申请公开了一种搜索结果页面中链接的连接方法,包括:
检测到搜索结果页面中链接的搜索引擎失去连接,则从所述链接中提取目标页面的地址,其中所述目标页面为所述链接对应的页面;
生成浏览器的跳转执行数据,其中所述跳转执行数据包括所述提取出来的目标页面的地址;
执行所述跳转执行数据,连接到所述目标页面的地址。
优选的,所述从所述链接中提取目标页面的地址之前,还包括:
预先获取搜索结果页面中的链接,并分析所述链接的结构;
从链接中获取目标页面URL的位置,其中所述目标页面URL用于保存目标页面的地址。
优选的,所述从所述链接中提取目标页面的地址,包括:
从所述链接中目标页面URL的位置处提取目标页面的地址。
优选的,所述从所述链接中目标页面URL的位置处提取目标页面的地址,包括:
使用所述正则表达式从所述链接中查找目标页面URL的位置,其中,所述正则表达式用于查找所述链接中获取目标页面的地址;
在所述目标页面URL的位置处提取目标页面的地址。
优选的,所述跳转执行数据用于在浏览器中打开一个标签,并在所述标签内显示标签对象对应的页面,所述的方法还包括:
预先获取从本地缓存中获取浏览器的第一跳转执行数据并保存;
分析所述第一跳转执行数据中标签对象的位置。
优选的,根据生成浏览器的跳转执行数据,包括:
提取预先保存的第一跳转执行数据;
将所述第一跳转执行数据中标签对象的位置添加为所述目标页面的地址;
生成第二跳转执行数据,并保存在本地缓存中。
优选的,所述执行所述跳转执行数据,连接到所述目标页面的地址,包括:
提取并执行本地缓存中保存的第二跳转执行数据;
在浏览器中打开一个新的标签;
在所述新的标签中连接目标页面的地址以打开目标页面。
相应的,本申请还公开了一种搜索结果页面中链接的连接装置,包括:
提取模块,用于检测到搜索结果页面中链接的搜索引擎失去连接,则从所述链接中提取目标页面的地址,其中所述目标页面为所述链接对应的页面;
生成模块,用于生成浏览器的跳转执行数据,其中所述跳转执行数据包括所述提取出来的目标页面的地址;
连接模块,用于执行所述跳转执行数据,连接到所述目标页面的地址。
优选的,所述的装置还包括:第一预处理模块,所述第一预处理模块包括:
获取并分析子模块,用于预先获取搜索结果页面中链接,并分析所述链接的结构;
获取子模块,用于从链接中获取目标页面URL的位置,其中所述目标页面URL用于保存目标页面的地址。
优选的,所述提取模块,用于从所述链接中目标页面URL的位置处提取目标页面的地址。
优选的,所述提取模块,包括:
查找子模块,用于使用所述正则表达式从所述链接中查找目标页面URL的位置,其中,所述正则表达式用于查找所述链接中获取目标页面的地址;
提取子模块,用于在所述目标页面URL的位置处提取目标页面的地址。
优选的,所述跳转执行数据用于在浏览器中打开一个标签,并在所述标签内显示标签对象对应的页面,所述的装置还包括:第二预处理模块,
所述第二预处理模块,包括:
获取子模块,用于预先获取从本地缓存中获取浏览器的第一跳转执行数据并保存;
分析子模块,用于分析所述第一跳转执行数据获取标签对象的位置。
优选的,所述生成模块,包括:
提取子模块,用于提取预先保存的第一跳转执行数据;
添加子模块,用于将所述第一跳转执行数据中获取标签对象的位置添加为所述目标页面的地址;
生成并保存子模块,用于生成第二跳转执行数据,并保存在本地缓存中。
优选的,所述连接模块,包括:
提取并执行子模块,用于提取并执行本地缓存中保存的第二跳转执行数据;
打开子模块,用于在浏览器中打开一个新的标签;
连接子模块,用于在所述新的标签中连接目标页面的地址以打开目标页面。
与现有技术相比,本申请包括以下优点:
首先,检测到搜索结果页面中链接的搜索引擎失去连接,则从所述链接中提取目标页面的地址,其中所述目标页面为所述链接对应的页面,生成浏览器的跳转执行数据,其中所述跳转执行数据包括所述提取出来的目标页面的地址,执行所述跳转执行数据,连接到所述目标页面的地址。本申请在搜索引擎无法跳转到目标页面时,可以自己生成所述跳转执行数据,然后连接到所述目标页面的地址。本申请在打开目标页面,即使所述链接对应的目标页面需要认证或安全加密,也不会受到影响,保证能够跳转到用户想看的目标页面中,搜索结果中的所述链接不会出现不能连接到目标页面的问题。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
用户点击所述链接时,由于网络状况不好等原因,导致搜索引擎的服务器与浏览器连接断开,浏览器接收不到返回数据,无法显示目标页面。
此时一种解决方法是采用重定向的方法。所述重定向的方法包括:1、301redirect即永久性转移(Permanently Moved);2、302redirect即暂时性转移(Temporarily Moved);3、meta fresh即通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为欺骗搜索引擎的信息。
但是所述重定向的方法不能保证跳转到用户想看的目标页面中,搜索结果中的所述链接仍然不能连接到目标页面。
本申请提供一种搜索结果页面中链接的连接方法,可以在打开目标页面,即使所述链接对应的目标页面需要认证或安全加密,也不会受到影响,保证能够跳转到用户想看的目标页面中,搜索结果中的所述链接不会出现不能连接到目标页面的问题。
参照图1,给出了本申请实施例所述一种搜索结果页面中链接的连接方法流程图。
步骤11,检测到搜索结果页面中链接的搜索引擎失去连接,则从所述链接中提取目标页面的地址,其中所述目标页面为所述链接对应的页面;
用户通过某个搜索引擎的搜索功能获取到搜索结果后,可以点击所述链接查看想看的页面,此时将用户想看的页面,即所述链接对应的页面作为目标页面。
例如,用户搜索xx网,在搜索结果页面中,第一条链接的描述信息为xx网首页,用户点击第一条链接,所述第一条链接对应的页面,即xx网首页为目标页面。
用户点击所述链接后,会先连接搜索引擎,此时若浏览器与搜索引擎失去连接,即检测到搜索结果页面中链接的搜索引擎失去连接,则无法接收搜索引擎的返回数据,如跳转执行数据,因此无法显示目标页面。此时浏览器可以从所述链接中提取目标页面的地址。
步骤12,生成浏览器的跳转执行数据,其中,所述跳转执行数据包括所述提取出来的目标页面的地址;
本申请依据浏览器通过跳转执行数据来显示目标页面的方法,在上述提取了目标页面的地址后,可以根据所述目标页面的地址,生成浏览器的跳转执行数据,然后使用所述生成的跳转执行数据打开并显示目标页面。
步骤13,执行所述跳转执行数据,连接到所述目标页面的地址。
在生成跳转执行数据后,浏览器可以执行所述跳转执行数据,根据所述跳转执行数据可以连接到所述目标页面的地址,显示所述目标页面。
综上所述,检测到搜索结果页面中链接的搜索引擎失去连接,则从所述链接中提取目标页面的地址,其中所述目标页面为所述链接对应的页面,生成浏览器的跳转执行数据,其中所述跳转执行数据包括所述提取出来的目标页面的地址,执行所述跳转执行数据,连接到所述目标页面的地址。本申请在搜索引擎无法跳转到目标页面时,可以自己生成所述跳转执行数据,然后连接到所述目标页面的地址。本申请可在打开目标页面,即使所述链接对应的目标页面需要认证或安全加密,也不会受到影响,保证能够跳转到用户想看的目标页面中,搜索结果中的所述链接不会出现不能连接到目标页面的问题。
通常缓存机制是由响应头来控制的。HTTP规范描述了Header控制缓存,The optional Cache-Control,Expires(过期)。
一般说来,遵循以下基本的规则:
1、如果响应头信息:告诉缓存器不要保留缓存,缓存器就不会缓存相应内容;
2、如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存;
3、如果在回应中不存在校验器(ETag或者Last-Modified头信息),缓存服务器会认为缺乏直接的更新度信息,内容将会被认为不可缓存。
4、一个缓存的副本如果含有以下信息:内容将会被认为是足够新的
1)含有完整的过期时间和寿命控制头信息,并且内容仍在保鲜期内;
2)浏览器已经使用过缓存副本,并且在一个会话中已经检查过内容的新鲜度;
3)缓存代理服务器近期内已经使用过缓存副本,并且内容的最后更新时间在上次使用期之前;
4)够新的副本将直接从缓存中送出,而不会向源服务器发送请求;
5、如果缓存的副本已经太旧了,缓存服务器将向源服务器发出请求校验请求,用于确定是否可以继续使用当前拷贝继续服务。
本申请通过浏览器的HTTP缓存机制,可以根据用户在搜索应请的历史Javascript脚本动态构造新的Javascript脚本,并置于浏览器HTTP缓存内。当搜索引擎不可服务时,浏览器执行动态构造新的Javascript脚本,连接目标页面。
优选的,所述从点击的所述链接中提取目标页面的地址之前,还包括:
预先获取搜索结果页面中的链接,并分析所述链接的结构;
从链接中获取目标页面URL的位置,其中所述目标页面URL用于保存目标页面的地址。
本申请可以预先获取搜索结果页面中的链接,然后分析所述链接的结构。例如,所述链接中可能包含搜索引擎对应的地址,搜索的关键字,目标页面的地址等。
对所述链接的结构分析后,就可以从中获取目标页面URL的位置,其中所述目标页面URL用于保存目标页面的地址。
优选的,所述跳转执行数据用于在浏览器中打开一个标签,并在所述标签内显示标签对象对应的页面,
所述的方法还包括:
预先获取从本地缓存中获取浏览器的第一跳转执行数据并保存;
分析所述第一跳转执行数据中标签对象的位置。
浏览器在通过跳转执行数据连接页面时,会将所述跳转执行数据保存在本地缓存中。将所述本地缓存中的调准执行数据作为第一跳转执行数据,预先获取本地缓存中的第一跳转执行数据,并且可以保存所述第一跳转执行数据,可以仍然保存在本地缓存中,也可以保存在其它位置,本申请对此不作限定。
其中,所述跳转执行数据的功能是首先在浏览器中打开一个标签,然后在所述标签内连接并显示标签对象对应的页面。
因此可以分析所述第一跳转执行数据的结构,分析出所述第一跳转执行数据中标签对象的位置。后续将所述标签对象的位置中的页面地址替换成目标页面的地址,连接目标页面。
例如,一种跳转执行数据中,具体Javascript脚本如下:
<script>window.googleJavaScriptRedirect=1</script><script>vara=parent,b=parent.google,c=location;if(a!=window&&b){if(b.r){b.r=0;a.location.href=″http://ent.xx1.com.cn/s/m/f/lix2.html″;c.replace(″about:blank″);}}else{c.replace(″http://ent.xx1.com.cn/s/m/f/lix2.html″);};</script><noscript><METAhttp-equiv=″refresh″
content=″0;URL=′http://ent.xx1.com.cn/s/m/f/lix2.html′″></noscript>
其中,标签对象的位置中的页面地址为:
http://ent.xx1.com.cn/s/m/f/lix2.html。
下面具体论述搜索结果页面中链接的连接方法:
参照图2,给出了本申请优选实施例所述一种搜索结果页面中链接的连接方法流程图。
步骤201,从所述链接中目标页面URL的位置处提取目标页面的地址;
上述分析出所述第一跳转执行数据中标签对象的位置后,可以构造一个正则表达式或一个函数,然后从所述链接中目标页面URL的位置处提取目标页面的地址。
如,使用所述正则表达式从所述链接中查找目标页面URL的位置,其中,所述正则表达式用于查找所述链接中获取目标页面的地址
例如,搜索结果页面中搜索xx网的第一条链接为:
http://www.google.com.hk/url?sa=t&rct=j&q=%E5%A5%87%E8%99%8E&source=web&cd=1&ved=0CDoQFjAA&url=http%3A%2F%2Fwww.xx.com%2F&ei=bUJoT6_ALMPorQeI9rHdBw&usg=AFQjCNGjK7aOPd4q6SliFZugXwgb-M4DVQ
可以从中提取目标页面的地址,即xx网的地址:http://www.xx.com/
步骤202,提取预先保存的第一跳转执行数据;
然后可以第一跳转执行数据的保存地址处提取所述跳转执行数据,例如,若跳转文件保存在本地缓存中,就可以从本地缓存各种获取所述第一跳转执行数据。
当然,也可以在浏览器的服务器端保存所述第一跳转执行数据,可以实时更新所述第一跳转执行数据,然后在浏览器需要所述第一跳转执行数据时,发送请求给服务器来获取所述第一跳转执行数据。本申请对所述第一跳转执行数据保存位置和获取方法不作限定。
步骤203,将所述第一跳转执行数据中标签对象的位置添加为所述目标页面的地址;
在获取到所述第一跳转执行数据后,可以在第一跳转执行数据中标签对象的位置处,使用所述目标页面的地址替换原有的页面地址。
例如将上述页面地址:http://ent.xx1.com.cn/s/m/f/lix2.html,替换为xx网的地址:http://www.xx.com/。
步骤204,生成第二跳转执行数据,并保存在本地缓存中;
在修改了标签对象对应的页面地址后,可以生成第二跳转执行数据,并保存在本地缓存中。
步骤205,提取并执行本地缓存中保存的第二跳转执行数据;
然后提取本地缓存中保存的第二跳转执行数据,并执行所述第二跳转执行数据。
步骤206,在浏览器中打开一个新的标签;
所述第二跳转执行数据首先在浏览器中打开一个新的标签,所述新的标签用于显示目标页面。
步骤207,在所述新的标签中连接目标页面的地址以打开目标页面。
然后所述第二跳转执行数据在新的标签中连接所述标签对象,即连接目标页面的地址,然后打开并显示所述目标页面。
参照图3,给出了本申请实施例所述一种搜索结果页面中链接的连接装置结构图。
相应的,本申请提供了一种搜索结果页面中链接的连接装置,包括:提取模块13、生成模块14和连接模块15,其中,
提取模块13,用于检测到搜索结果页面中链接的搜索引擎失去连接,则从所述链接中提取目标页面的地址,其中所述目标页面为所述链接对应的页面;
生成模块14,用于生成浏览器的跳转执行数据,其中所述跳转执行数据包括所述提取出来的目标页面的地址;
连接模块15,用于执行所述跳转执行数据,连接到所述目标页面的地址。
优选的,所述的装置还包括:第一预处理模块11,
所述第一预处理模块11包括:
获取并分析子模块111,用于预先获取搜索结果页面中链接,并分析所述链接的结构;
获取子模块112,用于从链接中获取目标页面URL的位置,其中所述目标页面URL用于保存目标页面的地址。
优选的,所述提取模块13,用于从所述链接中目标页面URL的位置处提取目标页面的地址。
优选的,提取模块13,包括:
查找子模块131,用于使用所述正则表达式从所述链接中查找目标页面URL的位置,其中,所述正则表达式用于查找所述链接中获取目标页面的地址;
提取子模块132,用于在所述目标页面URL的位置处提取目标页面的地址。
优选的,所述跳转执行数据用于在浏览器中打开一个标签,并在所述标签内显示标签对象对应的页面,
所述的装置还包括:第二预处理模块12,
所述第二预处理模块12,包括:
获取子模块121,用于预先获取从本地缓存中获取浏览器的第一跳转执行数据并保存;
分析子模块122,用于分析所述第一跳转执行数据获取标签对象的位置。
优选的,所述生成模块14,包括:
提取子模块141,用于提取预先保存的第一跳转执行数据;
添加子模块142,用于将所述第一跳转执行数据中获取标签对象的位置添加为所述目标页面的地址;
生成并保存子模块143,用于生成第二跳转执行数据,并保存在本地缓存中。
优选的,所述连接模块15,包括:
提取并执行子模块151,用于提取并执行本地缓存中保存的第二跳转执行数据;
打开子模块152,用于在浏览器中打开一个新的标签;
连接子模块153,用于在所述新的标签中连接目标页面的地址以打开目标页面。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种搜索结果页面中链接的连接方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。