CN102710748A - 数据获取方法、系统及设备 - Google Patents
数据获取方法、系统及设备 Download PDFInfo
- Publication number
- CN102710748A CN102710748A CN2012101333949A CN201210133394A CN102710748A CN 102710748 A CN102710748 A CN 102710748A CN 2012101333949 A CN2012101333949 A CN 2012101333949A CN 201210133394 A CN201210133394 A CN 201210133394A CN 102710748 A CN102710748 A CN 102710748A
- Authority
- CN
- China
- Prior art keywords
- data
- resource
- web page
- client
- page address
- 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.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种数据获取方法、系统及设备,属于计算机网络领域。所述方法包括:接收来自客户端的数据获取请求,所述数据获取请求包括网页地址;与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源;将抓取到的所述数据资源推送给所述客户端。本发明通过利用代理服务器建立多条数据通道来抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。
Description
技术领域
本发明涉及计算机网络领域,特别涉及一种数据获取方法、系统及设备。
背景技术
随着移动互联网的快速发展,使用诸如智能手机、平板电脑之类的移动终端浏览网络数据已经成为了人们在日常生活中必不可少的一部分。
以使用智能手机上的浏览器来上网冲浪为例,现有技术中已经存在的一种用于获取网页数据的数据获取方法为:第一,智能手机与服务器建立一个TCP(Transmission ControlProtocol,传输控制协议)信道,然后利用该TCP信道向服务器发起一个网页地址的数据获取请求;第二,服务器向智能手机返回该网页地址的主资源,主资源可以简单理解为用于显示该网页的主要内容的相关数据;第三,智能手机将该主资源进行缓存,并解析该主资源以判断网页是否还存在有子资源,子资源可以是Javascript脚本、图片或者音乐等等;第四,如果智能手机判断该网页还存在有子资源,则智能手机需要重新建立一个TCP信道,因为一个TCP信道同一时间只能为一个数据获取请求服务,然后智能手机利用新建的TCP信道向服务器发起子资源的数据获取请求;第五,服务器向智能手机返回该子资源的主资源;、、、;第六,当网页包含多个子资源时,重复上述子资源的获取过程,直到该网页的主资源和所有子资源都被获取到智能手机本地,然后智能手机显示该网页。
现有技术存在以下问题:第一,智能手机在获取一个网页数据的过程中,每获取一次子资源都要重新建立TCP信道和发送一次请求,从而导致非常浪费流量;第二,当一个网页包含多个子资源时,需要多次数据获取过程,响应时间较长,再加上移动网络本身延迟就比较高,使得一个网页从开始获取到最终显示成功需要非常长的时间,用户体验较差。
发明内容
为了解决客户端在获取网络数据时,浪费流量和响应时间较长的问题,本发明实施例提供了一种数据获取方法、系统及设备。所述技术方案如下:
根据本发明的一个方面,本发明实施例提供一种数据获取方法,用于代理服务器中,所述方法包括:
接收来自客户端的数据获取请求,所述数据获取请求包括网页地址;
与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源;
将抓取到的所述数据资源推送给所述客户端。
根据本发明的另一方面,本发明实施例还提供一种数据获取方法,用于客户端中,所述方法包括:
接收来自用户的网页访问请求,所述网页访问请求包含网页地址;
根据所述网页地址向代理服务器发送数据获取请求;
接收由所述代理服务器推送的所述网页地址对应的数据资源。
根据本发明的再一方面,本发明实施例还提供了一种代理服务器,所述代理服务器包括:
请求接收模块,用于接收来自客户端的数据获取请求,所述数据获取请求包括网页地址;
资源抓取模块,用于与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源;
资源推送模块,用于将抓取到的数据资源推送给所述客户端。
根据本发明的又一方面,本发明实施例还提供一种客户端,所述客户端包括:
网页请求接收模块,用于接收来自用户的网页访问请求,所述网页访问请求包含网页地址;
获取请求发送模块,用于根据所述网页地址向代理服务器发送数据获取请求;
数据资源接收模块,用于接收由所述代理服务器推送的所述网页地址对应的所有数据资源。
根据本发明的还一方面,本发明实施例还提供一种数据获取系统,其包括本发明实施例中提供的代理服务器,和本发明实施例中提供的客户端。
本发明实施例提供的技术方案带来的有益效果是:
通过利用代理服务器建立多条数据通道来抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例所涉及的实施环境的结构示意图;
图2是本发明实施例一提供的数据获取方法的方法流程图;
图3是本发明实施例二提供的数据获取方法的方法流程图;
图4是本发明实施例三提供的数据获取方法的方法流程图;
图5是本发明实施例四提供的代理服务器的结构方框图;
图6是本发明实施例四提供的代理服务器的另一结构方框图;
图7是本发明实施例四提供的代理服务器的再一结构方框图;
图8是本发明实施例四提供的代理服务器的又一结构方框图;
图9是本发明实施例五提供的客户端的结构方框图;
图10是本发明实施例五提供的客户端的又一结构方框图;
图11是本发明实施例六提供的数据获取系统的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请首先参考图1,其示出了本发明实施例所涉及的实施环境的结构示意图。该实施环境不仅包括用户使用的客户端110和网页服务器120,还包括有用于桥接客户端110和网页服务器120的代理服务器130。
其中,用户使用的客户端110可以是诸如手机、平板电脑和超便携个人电脑之类的移动终端,用户可以使用该移动终端来访问网络。
网页服务器120用于提供web服务,也即主要提供网页的所有数据资源给客户端110。
代理服务器130可以分别与客户端110和网页服务器120相连,用于代替客户端110获取网页服务器120中的数据,然后将获取到的数据提供给客户端110。该代理服务器130可以是一个服务器,也可以是一个服务器集群,或者是一个云计算中心。
请参考图2,其示出了本发明实施例一提供的数据获取方法的方法流程图。该数据获取方法可以适用于图1所示代理服务器中,也即本实施例主要以代理服务器一侧来描述,该数据获取方法可以包括:
步骤202,接收来自客户端的数据获取请求,该数据获取请求包括网页地址;
代理服务器可以接收来自客户端的数据获取请求,该数据获取请求可以是HTTP(Hypertext Transfer Protocol,超文本传输协议)请求,该数据获取请求中可以包括网页地址,网页地址可以使用URL(Universal Resource Locator,统一资源定位符)来表示,比如:一个网页地址为http://www.xxx.com/index.html。
步骤204,与网页服务器建立至少两条数据信道来并行抓取网页地址所对应的数据资源;
代理服务器可以与网页服务器建立若干条数据信道来并行抓取网页地址所对应的数据资源,其中,数据资源通常包括主资源和子资源。也就是说,当一个网页地址所对应的数据资源包括一个主资源和多个子资源时,代理服务器可以与网页服务器同时建立若干条数据信道,每条数据信道用来获取一个主资源或者一个子资源,然后代理服务器可以通过这若干条数据信道并行地获取到一个网页地址所对应的所有数据资源。
主资源可以是HTML(Hypertext Markup Language,超文本标记语言)类语言所描述的内容,主要用于显示一个网页的主体内容或者框架。子资源可以是一张图片、一个音乐文件或者一个JS脚本(也即Javascript脚本),其大部分都是不能够被HTML类语言来直接描述的内容或者数据。通常情况下,一个网页由一个主资源和若干个子资源构成。
步骤206,将抓取到的数据资源推送给客户端。
代理服务器将该网页地址所对应的所有数据资源都抓取到本地缓存后,可以将抓取到的数据资源推送给客户端。此时,客户端就可以得到该网页地址所对应的数据资源。
综上所述,本发明实施例一提供的数据获取方法通过利用代理服务器建立多条数据通道来并行抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。
请参考图3,其示出了本发明实施例二提供的数据获取方法的方法流程图。该数据获取方法可以适用于图1所示代理服务器中,也即本实施例主要以代理服务器一侧来描述,该数据获取方法可以包括:
步骤301,接收来自客户端的持久通道建立请求;
客户端中的浏览器刚开始启动时,就可以发送一个持久通道建立请求给代理服务器,代理服务器可以接收到来自客户端的持久通道建立请求。
步骤302,与客户端建立持久通道,以便接收来自客户端的至少一个数据获取请求,并通过心跳信号与客户端维持持久通道;
代理服务器在接收到来自客户端的持久通道建立请求后,可以与客户端建立持久通道,并且通过心跳信号与客户端维持该持久通道。持久通道可以是指保持一个较长时间的TCP连接,该TCP连接支持多路复用,也即在一个全双工的TCP连接上可以同时并行传输多个HTTP请求。该TCP连接被创建之后,代理服务器可以利用该TCP连接监听客户端的HTTP请求。本步骤的实现过程,可以通过在TCP层和HTTP层实现新的协议来完成。
步骤303,接收来自客户端的数据获取请求,该数据获取请求中包括网页地址;
代理服务器可以接收来自客户端的数据获取请求,该数据获取请求可以是HTTP请求,该数据获取请求中可以包括网页地址,网页地址可以使用URL来表示,比如:一个网页地址为http://www.xxx.com/index.html。
步骤304,与网页服务器建立至少两条数据信道来并行抓取网页地址所对应的数据资源,数据资源包括主资源或者子资源,每条数据通道用于抓取一个主资源或者一个子资源;
代理服务器可以与网页服务器建立若干条数据信道来并行抓取网页地址所对应的数据资源,其中,数据资源包括主资源和子资源。也就是说,当一个网页地址所对应的数据资源包括一个主资源和多个子资源时,代理服务器可以与网页服务器同时建立若干条数据信道,每条数据信道用来获取一个主资源或者一个子资源,然后代理服务器可以通过这若干条数据信道并行地获取到一个网页地址所对应的所有数据资源。该数据通道可以是指代理服务器与网页服务器之间建立的TCP通道,比如,代理服务器可以首先与网页服务器建立一条TCP通道来获取主资源,然后在判断到网页地址所对应的所有数据资源还包括多个子资源时,分别建立多条TCP通道来并行获取网页地址所对应的子资源。由于客户端通常具有在同一域名下只能建立6个TCP通道的限制,而代理服务器可以基于较强的处理能力和网络带宽而优化,使得与网页服务器的并发TCP通道增加至20条。所以代理服务器可以以非常快的速度获取到一个网页地址所对应的所有数据资源。
主资源可以是HTML(Hypertext Markup Language,超文本标记语言)类语言所描述的内容,主要用于显示一个网页的主体内容或者框架。子资源可以是一张图片、一个音乐文件或者一个JS脚本(也即Javascript脚本),其大部分都是不能够被HTML类语言来直接描述的内容或者数据。通常情况下,一个网页由一个主资源和若干个子资源构成。
步骤305,判断获取到的主资源或子资源是否包括脚本数据,如果是,则进入步骤306;如果否,则直接进入步骤307;
当代理服务器通过一个数据通道,获取到一个网页地址所对应的所有数据资源的一个主资源或者子资源时,代理服务器可以判断该主资源或子资源里是否包括脚本数据。该脚本数据可以是指Javascript脚本。
步骤306,如果获取到的主资源或子资源包括脚本数据,则预执行脚本数据;
如果代理服务器判断到主资源或子资源里包括脚本数据,则可以代替客户端预先执行该脚本数据。这样客户端就不需要对这部分脚本数据进行执行操作,大幅度减轻客户端的工作量,可以进一步地提高网页的加载速度。
步骤307,将获取到的网页地址所对应的主资源或者子资源缓存到本地缓存;
当代理服务器通过一个数据通道,获取到一个网页地址所对应的所有数据资源的一个主资源或者子资源之后,可以将该主资源或者子资源缓存到本地缓存中。本地缓存可以由内存和Flash等较高速度的存储器来实现,也可以由硬盘或者分布式存储系统等较低速度的存储器来实现。
更为优选地,将该主资源或者子资源缓存到本地缓存时,可以具体包括:
将对应于一个网页地址的所有数据资源进行缓存,并按照网页地址做哈希处理后获得的唯一标识来进行存储。同时对于每个唯一标识设置一访问量。
步骤308,监听本地缓存中是否缓存到网页地址所对应的主资源或者子资源;
代理服务器可以监听本地缓存中是否缓存到网页地址所对应的主资源或者子资源。换句话说,在步骤307中每次缓存到一个主资源或者子资源,代理服务器都可以实时地检测到该变化。比如,设置一个消息队列,每次缓存到一个主资源或者子资源时,发送一个消息到该消息队列,代理服务器可以从该消息队列马上获知到本地缓存中缓存到了网页地址所对应的主资源或者子资源。
步骤309,如果本地缓存中缓存到网页地址所对应的主资源或者子资源,则推送主资源或者子资源至客户端。
当代理服务器监听到本地缓存中缓存到网页地址所对应的主资源或者子资源后,则主动推送该主资源或者子资源至客户端。当一个网页地址所对应的所有数据资源包含一个主资源和多个子资源时,步骤305至步骤309将重复多次,也即代理服务器每获取到一个主资源或子资源后,就进行一次步骤305至步骤309,以便将该主资源或子资源推送到客户端,直到该网页地址所对应的所有数据资源都被推送到客户端为止。
显然,在上述过程中,客户端只需要在步骤303中向代理服务器发送一次包含网页地址的HTTP请求,然后就一直接收代理服务器推送的与该网页地址所对应的所有数据资源即可。利用代理服务器较强的处理能力和较高的高速带宽,可以非常快地获取到网页数据并显示。
还需要补充说明的是,在步骤307中,代理服务器可以将一个网页地址获取到的数据资源进行缓存。此时可以将该网页地址进行哈希处理后获得的唯一标识作为存储索引来缓存,同时对应与每个唯一标识设置一个记录:被推送次数。不仅如此,本地缓存也可以同时由诸如内存或者闪存之类的高速存储器和诸如硬盘或者分布式存储系统之类的低速存储器来结合实现。
在此种情况下,在步骤303中,当代理服务器接收到不同客户端的数据获取请求之后,首先根据该数据获取请求之内的网页地址,先在本地缓存中查找是否存在该网页地址所对应的所有数据资源的缓存,如果有的话,直接跳到步骤309中,将该网页地址所对应的数据资源推送到客户端。比如,很多客户端可能会在一段时间内比较集中地访问同一个网页地址所对应的新闻页面。代理服务器每次将本地缓存中的数据资源推送到客户端时,可以将该网页地址所对应的被推送次数加1,然后代理服务器还可以根据某一个网页地址的被推送次数是否超过预定阀值,来选择将该网页地址所对应的数据资源缓存到高速缓存器中,还是存储到低速缓存器中。
综上所述,本发明实施例二提供的数据获取方法通过利用代理服务器建立多条数据通道来并行抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。同时,本实施例提供的方法还通过增加持久通道机制、脚本数据预执行机制和采用高速缓存器缓存网页数据的机制,达到了代理服务器可以更快地将网页数据推送到客户端的效果。
请参考图4,其示出了本发明实施例三提供的数据获取方法的方法流程图。该数据获取方法可以适用于图1所示客户端中,也即本实施例主要以客户端一侧来描述,该数据获取方法可以包括:
步骤401,向代理服务器发送持久通道建立请求;
客户端中的浏览器刚开始启动时,就可以发送一个持久通道建立请求给代理服务器,代理服务器可以接收到来自客户端的持久通道建立请求。
步骤402,与代理服务器建立持久通道,以便利用持久通道向代理服务器发送至少一个数据获取请求,并通过心跳信号与代理服务器维持持久通道;
代理服务器在接收到来自客户端的持久通道建立请求后,可以反馈是否接受该持久通道建立请求。如果接受,则客户端可以与代理服务器建立持久通道,并且通过心跳信号与代理服务器维持该持久通道。持久通道可以是指保持一个较长时间的TCP连接,该TCP连接支持多路复用,也即在一个全双工的TCP连接上可以同时并行传输多个HTTP请求。该TCP连接被创建之后,代理服务器可以利用该TCP连接监听客户端的HTTP请求。本步骤的实现过程,可以通过在TCP层和HTTP层实现新的协议来完成。
步骤403,接收来自用户的网页访问请求,网页访问请求包含网页地址;
当用户使用客户端上的浏览器时,可以通过该浏览器向客户端发起网页访问请求,该网页访问请求中包含有网页地址,客户端可以接收来自用户的网页访问请求。
步骤404,根据网页地址向代理服务器发送数据获取请求;
客户端接收到来自用户的网页访问请求之后,可以利用步骤402中预先建立的持久通道向代理服务器发送数据获取请求,该数据获取请求包括网页地址。
因为持久通道需要通过心跳信号维持,可能会出现持久通道失效的情况,为此,本步骤还可以具体包括:
第一,判断是否已经存在持久通道;
客户端在接收到来自用户的网页访问请求之后,首先判断是否已经与代理服务器之间存在有持久通道。
第二,如果已经存在持久通道,则继续判断持久通道是否正常;
如果客户端判断已经与代理服务器之间存在有持久通道,则继续判断持久通道是否正常。
第三,如果持久通道正常,则利用持久通道向代理服务器发送数据获取请求,该数据获取请求包括网页地址。
如果客户端继续判断持久通道正常,才利用持久通道向代理服务器发送数据获取请求,该数据获取请求包括网页地址。
步骤405,接收由代理服务器推送的网页地址对应的数据资源。
客户端等待接收代理服务器推送过来的网页地址对应的数据资源。如果代理服务器中的本地缓存已经存在有该网页地址对应的数据资源,则代理服务器可以一次性将该网页地址对应的所有数据资源全部推送到客户端本地,客户端将该网页地址对应的所有数据资源存储到客户端本地的缓存中,然后显示给用户。如果代理服务器中的本地缓存还没有存在有该网页地址对应的数据资源,则代理服务器每获取到该网页地址对应的所有数据资源中的一个主资源或者子资源时,会马上将该主资源或者子资源推送给客户端,客户端可以分批次接收到该网页地址对应的所有数据资源,并依次缓存到客户端本地的缓存中,然后显示给用户。
综上所述,本发明实施例三提供的数据获取方法通过利用代理服务器建立多条数据通道来并行抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。
请参考图5,其示出了本发明实施例四提供的代理服务器的结构方框图。该代理服务器包括请求接收模块520、资源抓取模块540和资源推送模块560。
请求接收模块520用于接收来自客户端的数据获取请求,该数据获取请求包括网页地址。
资源抓取模块540用于与网页服务器建立至少两条数据信道来并行抓取网页地址所对应的数据资源。
资源推送模块560用于将抓取到的数据资源推送给客户端。
优选地,代理服务器还可以包括:信号接收模块512、通道建立模块514和通道维持模块516,如图6所示。其中,信号接收模块512用于接收来自客户端的持久通道建立请求。通道建立模块514用于与客户端建立持久通道,以便接收来自客户端的至少一个数据获取请求。通道维持模块516用于通过心跳信号与客户端维持持久通道。
其中,资源抓取模块540可以具体包括:并行抓取单元542、脚本判断单元544和脚本执行单元546,如图7所示。其中,并行抓取单元542用于与网页服务器建立至少两条数据信道来并行抓取网页地址所对应的数据资源,数据资源包括主资源和子资源,每条数据通道用于抓取一个主资源或者一个子资源;脚本判断单元544用于判断获取到的主资源或子资源是否包括脚本数据;脚本执行单元546用于如果脚本判断单元544判断到并行抓取单元542获取到的主资源或子资源包括脚本数据,则预执行脚本数据。
优选地,代理服务器还可以包括:数据缓存模块550,如图8所示。数据缓存模块550用于将获取到的网页地址所对应的主资源或者子资源缓存到本地缓存。此时,资源推送模块560可以具体包括:资源监听单元562和资源推送单元564。其中,资源监听单元562用于监听本地缓存中是否缓存到网页地址所对应的主资源或者子资源。资源推送单元564用于如果资源判断单元562判断到本地缓存中缓存到网页地址所对应的主资源或者子资源,则推送主资源或者子资源至客户端。
综上所述,本发明实施例四提供的代理服务器通过利用代理服务器建立多条数据通道来并行抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。同时,本发明实施例四提供的代理服务器还通过增加持久通道机制、脚本数据预执行机制和采用高速缓存器缓存网页数据的机制,达到了代理服务器可以更快地将网页数据推送到客户端的效果。
请参考图9,其示出了本发明实施例五提供的客户端的结构方框图。该客户端可以包括网页请求接收模块920、获取请求发送模块940和数据资源接收模块960。
网页请求接收模块920用于接收来自用户的网页访问请求,该网页访问请求包含网页地址。
获取请求发送模块940用于根据网页地址向代理服务器发送数据获取请求。
数据资源接收模块960用于接收由代理服务器推送的网页地址对应的数据资源。
进一步地,客户端还可以包括:建立请求发送模块912、持久通道建立模块914和持久通道维持模块916,如图10所示。其中,建立请求发送模块912用于向代理服务器发送持久通道建立请求;持久通道建立模块914用于与代理服务器建立持久通道,以便利用持久通道向代理服务器发送至少一个数据获取请求;持久通道维持模块916用于通过心跳信号与代理服务器维持持久通道。
此时,获取请求发送模块940还可以具体包括:第一通道判断单元942、第二通道判断单元944和获取请求发送单元946。其中,第一通道判断单元942用于判断是否已经存在持久通道;第二通道判断单元944用于如果已经存在持久通道,则继续判断持久通道是否正常;获取请求发送单元946用于如果持久通道正常,则利用持久通道向代理服务器发送数据获取请求,数据获取请求包括网页地址。
综上所述,本发明实施例五提供的客户端通过利用代理服务器建立多条数据通道来并行抓取网页的数据资源,然后主动推送给客户端的方案,解决了客户端在获取网络数据时,浪费流量和响应时间较长的问题,达到了客户端仅需要发起一次数据获取请求,就可以快速获得网页的所有数据资源以显示给用户的效果。
请参考图11,其示出了本发明实施例六提供的数据获取系统的结构示意图。该数据获取系统可以包括代理服务器11a,和客户端11b。
其中,代理服务器11a可以是实施例四中提供的代理服务器。客户端11b可以是实施例五中提供的代理服务器。
需要说明的是:上述实施例提供的代理服务器、客户端和数据获取系统在获取网页数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的代理服务器、客户端和数据获取系统与数据获取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种数据获取方法,其特征在于,所述方法包括:
接收来自客户端的数据获取请求,所述数据获取请求包括网页地址;
与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源;
将抓取到的所述数据资源推送给所述客户端。
2.根据权利要求1所述的数据获取方法,其特征在于,所述接收来自客户端的数据获取请求,所述数据获取请求包括网页地址之前,还包括:
接收来自客户端的持久通道建立请求;
与所述客户端建立持久通道,以便接收来自所述客户端的至少一个数据获取请求;
通过心跳信号与所述客户端维持所述持久通道。
3.根据权利要求1所述的数据获取方法,其特征在于,所述与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源,具体包括:
与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源,所述数据资源包括主资源和子资源,每条数据通道用于抓取一个主资源或者一个子资源;
判断获取到的主资源或子资源是否包括脚本数据;
如果获取到的主资源或子资源包括脚本数据,则预执行所述脚本数据。
4.根据权利要求1或3所述的数据获取方法,其特征在于,所述与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源之后,还包括:
将获取到的所述网页地址所对应的主资源或者子资源缓存到本地缓存。
5.根据权利要求4所述的数据获取方法,其特征在于,所述将抓取到的所有数据资源推送给所述客户端,具体包括:
监听所述本地缓存中是否缓存到所述网页地址所对应的主资源或者子资源;
如果所述本地缓存中缓存到所述网页地址所对应的主资源或者子资源,则推送所述主资源或者子资源至所述客户端。
6.一种数据获取方法,其特征在于,所述方法包括:
接收来自用户的网页访问请求,所述网页访问请求包含网页地址;
根据所述网页地址向代理服务器发送数据获取请求;
接收由所述代理服务器推送的与所述网页地址对应的数据资源。
7.根据权利要求6所述的数据获取方法,其特征在于,所述接收来自用户的网页访问请求之前,还包括:
向所述代理服务器发送持久通道建立请求;
与所述代理服务器建立持久通道,以便利用所述持久通道向所述代理服务器发送至少一个数据获取请求;
通过心跳信号与所述代理服务器维持所述持久通道。
8.根据权利要求7所述的数据获取方法,其特征在于,所述根据所述网页地址向代理服务器发送数据获取请求,具体包括:
判断是否已经存在持久通道;
如果已经存在持久通道,则继续判断所述持久通道是否正常;
如果所述持久通道正常,则利用所述持久通道向代理服务器发送数据获取请求,所述数据获取请求中包含所述网页地址。
9.一种代理服务器,其特征在于,所述代理服务器包括:
请求接收模块,用于接收来自客户端的数据获取请求,所述数据获取请求包括网页地址;
资源抓取模块,用于与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源;
资源推送模块,用于将抓取到的所述数据资源推送给所述客户端。
10.根据权利要求9所述的代理服务器,其特征在于,所述代理服务器,还包括:
信号接收模块、通道建立模块和通道维持模块;
所述信号接收模块,用于接收来自客户端的持久通道建立请求;
所述通道建立模块,用于与所述客户端建立持久通道,以便接收来自所述客户端的至少一个数据获取请求;
所述通道维持模块,用于通过心跳信号与所述客户端维持所述持久通道。
11.根据权利要求9所述的代理服务器,其特征在于,所述资源抓取模块,具体包括:
并行抓取单元、脚本判断单元和脚本执行单元;
所述并行抓取单元,用于与网页服务器建立至少两条数据信道来并行抓取所述网页地址所对应的数据资源,所述数据资源包括主资源和子资源,每条数据通道用于抓取一个主资源或者一个子资源;
所述脚本判断单元,用于判断获取到的主资源或子资源是否包括脚本数据;
所述脚本执行单元,用于如果获取到的主资源或子资源包括脚本数据,则预执行所述脚本数据。
12.根据权利要求9或11所述的代理服务器,其特征在于,所述代理服务器,还包括:
数据缓存模块;
所述数据缓存模块,用于将获取到的所述网页地址所对应的主资源或者子资源缓存到本地缓存。
13.根据权利要求12所述的代理服务器,其特征在于,所述资源推送模块,具体包括:
资源监听单元和资源推送单元;
所述监听判断单元,用于监听所述本地缓存中是否缓存到所述网页地址所对应的主资源或者子资源;
所述资源推送单元,用于如果所述本地缓存中缓存到所述网页地址所对应的主资源或者子资源,则推送所述主资源或者子资源至所述客户端。
14.一种客户端,其特征在于,所述客户端包括:
网页请求接收模块,用于接收来自用户的网页访问请求,所述网页访问请求包含网页地址;
获取请求发送模块,用于根据所述网页地址向代理服务器发送数据获取请求;
数据资源接收模块,用于接收由所述代理服务器推送的与所述网页地址对应的数据资源。
15.根据权利要求14所述的客户端,其特征在于,所述客户端,还包括:
建立请求发送模块、持久通道建立模块和持久通道维持模块;
所述建立请求发送模块,用于向所述代理服务器发送持久通道建立请求;
所述持久通道建立模块,用于与所述代理服务器建立持久通道,以便利用所述持久通道向所述代理服务器发送至少一个数据获取请求;
所述持久通道维持模块,用于通过心跳信号与所述代理服务器维持所述持久通道。
16.根据权利要求14或16所述的客户端,其特征在于,所述获取请求发送模块,具体包括:
第一通道判断单元、第二通道判断单元和获取请求发送单元;
所述第一通道判断单元,用于判断是否已经存在持久通道;
所述第二通道判断单元,用于如果已经存在持久通道,则继续判断所述持久通道是否正常;
所述获取请求发送单元,用于如果所述持久通道正常,则利用所述持久通道向代理服务器发送数据获取请求,所述数据获取请求包括所述网页地址。
17.一种数据获取系统,其特征在于,其包括如权利要求9至13任一所述的代理服务器,和如权利要求14至16任一所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133394.9A CN102710748B (zh) | 2012-05-02 | 2012-05-02 | 数据获取方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210133394.9A CN102710748B (zh) | 2012-05-02 | 2012-05-02 | 数据获取方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102710748A true CN102710748A (zh) | 2012-10-03 |
CN102710748B CN102710748B (zh) | 2016-01-27 |
Family
ID=46903294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210133394.9A Active CN102710748B (zh) | 2012-05-02 | 2012-05-02 | 数据获取方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102710748B (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902803A (zh) * | 2012-10-12 | 2013-01-30 | 北京奇虎科技有限公司 | 网页转码系统 |
CN103258056A (zh) * | 2013-05-31 | 2013-08-21 | 北京奇虎科技有限公司 | 处理风格样式表的方法、服务器、客户端和系统 |
CN103281387A (zh) * | 2013-05-31 | 2013-09-04 | 北京奇虎科技有限公司 | 处理网页中子资源的方法、服务器、客户端和系统 |
CN103530390A (zh) * | 2013-10-22 | 2014-01-22 | 北京奇虎科技有限公司 | 网页抓取的方法及设备 |
CN104113564A (zh) * | 2013-04-17 | 2014-10-22 | 中国移动通信集团公司 | 超文本传输协议连接复用方法、设备、系统及终端 |
CN104239302A (zh) * | 2013-06-07 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 页面内容获取方法、装置及应用设备与移动终端 |
CN104602034A (zh) * | 2014-12-31 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种移动网页的播放方法和系统 |
CN104615771A (zh) * | 2015-02-13 | 2015-05-13 | 广州华多网络科技有限公司 | 一种获取网页数据的方法及装置 |
CN104798091A (zh) * | 2012-11-21 | 2015-07-22 | 奥迪股份公司 | 具有用于操作公共网络服务的门户网站的操作装置的机动车 |
CN104850560A (zh) * | 2014-02-18 | 2015-08-19 | 北京京东尚科信息技术有限公司 | 一种实时加载网页中业务数据的方法和系统 |
CN104866499A (zh) * | 2014-02-24 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种网页的加载方法及装置 |
CN105610836A (zh) * | 2015-12-31 | 2016-05-25 | 浙江省公众信息产业有限公司 | 一种数据传输的方法及系统 |
CN105893451A (zh) * | 2015-12-31 | 2016-08-24 | 乐视移动智能信息技术(北京)有限公司 | 一种资源获取方法与装置 |
CN106095506A (zh) * | 2016-06-14 | 2016-11-09 | 乐视控股(北京)有限公司 | 一种页面加载方法及装置 |
CN106302572A (zh) * | 2015-05-15 | 2017-01-04 | Tcl集团股份有限公司 | 一种服务器间的多通道通信方法及其系统 |
CN106293794A (zh) * | 2015-06-05 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 加载页面的方法、装置和系统 |
CN106549989A (zh) * | 2015-09-17 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 一种数据传输方法及其系统、用户终端、应用服务器 |
CN106612261A (zh) * | 2015-10-26 | 2017-05-03 | 北京国双科技有限公司 | 网站数据获取方法、装置及系统 |
CN106776947A (zh) * | 2016-12-02 | 2017-05-31 | 乐视控股(北京)有限公司 | 资源获取方法、装置及终端 |
CN107025234A (zh) * | 2016-02-01 | 2017-08-08 | 中国移动通信集团公司 | 一种信息推送方法及缓存服务器 |
CN107230130A (zh) * | 2017-04-28 | 2017-10-03 | 杭州集盒网络技术有限公司 | 一种商圈数据显示方法 |
CN107656934A (zh) * | 2016-07-25 | 2018-02-02 | 腾讯科技(深圳)有限公司 | 一种预加载方法、装置、设备 |
CN107798008A (zh) * | 2016-08-31 | 2018-03-13 | 腾讯科技(深圳)有限公司 | 内容推送系统、方法及装置 |
CN107798061A (zh) * | 2017-09-18 | 2018-03-13 | 维沃移动通信有限公司 | 一种网页加载方法及移动终端 |
CN110134896A (zh) * | 2019-05-17 | 2019-08-16 | 山东渤聚通云计算有限公司 | 一种代理服务器的监控过程及智能缓存方法 |
CN110569462A (zh) * | 2019-07-31 | 2019-12-13 | 深圳市富途网络科技有限公司 | 一种网络请求数据管理方法、数据管理设备及可读介质 |
CN110674379A (zh) * | 2019-09-26 | 2020-01-10 | 凡普数字技术有限公司 | 获取信息的方法、装置以及存储介质 |
CN110737447A (zh) * | 2018-07-18 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 应用更新方法和装置 |
CN111131019A (zh) * | 2019-12-12 | 2020-05-08 | 华为技术有限公司 | 一种多路http通道复用的方法及终端 |
CN111191158A (zh) * | 2019-12-27 | 2020-05-22 | 北京达佳互联信息技术有限公司 | 网页资源缓存方法、装置、计算机设备和存储介质 |
CN112968939A (zh) * | 2017-01-05 | 2021-06-15 | 创新先进技术有限公司 | 一种移动端资源加载方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080119177A1 (en) * | 2006-09-15 | 2008-05-22 | Speedus Corp. | Metadata Content Delivery System for Wireless Networks |
CN101635718A (zh) * | 2009-08-26 | 2010-01-27 | 中兴通讯股份有限公司 | 网络爬虫系统及其获取资源的方法和网络资源抓取装置 |
CN101651707A (zh) * | 2009-09-22 | 2010-02-17 | 西安交通大学 | 一种网络用户行为日志自动获取方法 |
CN102143187A (zh) * | 2011-04-07 | 2011-08-03 | 北京星网锐捷网络技术有限公司 | 终端设备访问网络的方法、系统及网络访问代理装置 |
CN102184231A (zh) * | 2011-05-12 | 2011-09-14 | 广州市动景计算机科技有限公司 | 获取页面资源的方法及装置 |
-
2012
- 2012-05-02 CN CN201210133394.9A patent/CN102710748B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080119177A1 (en) * | 2006-09-15 | 2008-05-22 | Speedus Corp. | Metadata Content Delivery System for Wireless Networks |
CN101635718A (zh) * | 2009-08-26 | 2010-01-27 | 中兴通讯股份有限公司 | 网络爬虫系统及其获取资源的方法和网络资源抓取装置 |
CN101651707A (zh) * | 2009-09-22 | 2010-02-17 | 西安交通大学 | 一种网络用户行为日志自动获取方法 |
CN102143187A (zh) * | 2011-04-07 | 2011-08-03 | 北京星网锐捷网络技术有限公司 | 终端设备访问网络的方法、系统及网络访问代理装置 |
CN102184231A (zh) * | 2011-05-12 | 2011-09-14 | 广州市动景计算机科技有限公司 | 获取页面资源的方法及装置 |
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902803A (zh) * | 2012-10-12 | 2013-01-30 | 北京奇虎科技有限公司 | 网页转码系统 |
CN102902803B (zh) * | 2012-10-12 | 2016-01-13 | 北京奇虎科技有限公司 | 网页转码系统 |
US10158597B2 (en) | 2012-11-21 | 2018-12-18 | Audi Ag | Motor vehicle comprising an operating device for operating an internet portal of a social network service |
CN104798091B (zh) * | 2012-11-21 | 2018-02-02 | 奥迪股份公司 | 具有用于操作公共网络服务的门户网站的操作装置的机动车 |
CN104798091A (zh) * | 2012-11-21 | 2015-07-22 | 奥迪股份公司 | 具有用于操作公共网络服务的门户网站的操作装置的机动车 |
CN104113564A (zh) * | 2013-04-17 | 2014-10-22 | 中国移动通信集团公司 | 超文本传输协议连接复用方法、设备、系统及终端 |
CN103258056B (zh) * | 2013-05-31 | 2016-06-29 | 北京奇虎科技有限公司 | 处理风格样式表的方法、服务器、客户端和系统 |
CN103258056A (zh) * | 2013-05-31 | 2013-08-21 | 北京奇虎科技有限公司 | 处理风格样式表的方法、服务器、客户端和系统 |
CN103281387A (zh) * | 2013-05-31 | 2013-09-04 | 北京奇虎科技有限公司 | 处理网页中子资源的方法、服务器、客户端和系统 |
CN103281387B (zh) * | 2013-05-31 | 2017-04-12 | 北京奇虎科技有限公司 | 处理网页中子资源的方法、服务器、客户端和系统 |
CN104239302A (zh) * | 2013-06-07 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 页面内容获取方法、装置及应用设备与移动终端 |
CN104239302B (zh) * | 2013-06-07 | 2017-10-03 | 腾讯科技(深圳)有限公司 | 页面内容获取方法、装置及应用设备与移动终端 |
CN103530390A (zh) * | 2013-10-22 | 2014-01-22 | 北京奇虎科技有限公司 | 网页抓取的方法及设备 |
CN103530390B (zh) * | 2013-10-22 | 2018-09-04 | 北京奇虎科技有限公司 | 网页抓取的方法及设备 |
CN104850560A (zh) * | 2014-02-18 | 2015-08-19 | 北京京东尚科信息技术有限公司 | 一种实时加载网页中业务数据的方法和系统 |
CN104866499A (zh) * | 2014-02-24 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种网页的加载方法及装置 |
CN104602034B (zh) * | 2014-12-31 | 2019-05-31 | 北京奇艺世纪科技有限公司 | 一种移动网页的播放方法和系统 |
CN104602034A (zh) * | 2014-12-31 | 2015-05-06 | 北京奇艺世纪科技有限公司 | 一种移动网页的播放方法和系统 |
CN104615771B (zh) * | 2015-02-13 | 2018-12-21 | 广州华多网络科技有限公司 | 一种获取网页数据的方法及装置 |
CN104615771A (zh) * | 2015-02-13 | 2015-05-13 | 广州华多网络科技有限公司 | 一种获取网页数据的方法及装置 |
CN106302572A (zh) * | 2015-05-15 | 2017-01-04 | Tcl集团股份有限公司 | 一种服务器间的多通道通信方法及其系统 |
CN106302572B (zh) * | 2015-05-15 | 2020-09-22 | Tcl科技集团股份有限公司 | 一种服务器间的多通道通信方法及其系统 |
CN106293794A (zh) * | 2015-06-05 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 加载页面的方法、装置和系统 |
CN106549989A (zh) * | 2015-09-17 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 一种数据传输方法及其系统、用户终端、应用服务器 |
CN106549989B (zh) * | 2015-09-17 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种数据传输方法及其系统、用户终端、应用服务器 |
CN106612261A (zh) * | 2015-10-26 | 2017-05-03 | 北京国双科技有限公司 | 网站数据获取方法、装置及系统 |
CN105893451A (zh) * | 2015-12-31 | 2016-08-24 | 乐视移动智能信息技术(北京)有限公司 | 一种资源获取方法与装置 |
CN105610836A (zh) * | 2015-12-31 | 2016-05-25 | 浙江省公众信息产业有限公司 | 一种数据传输的方法及系统 |
CN107025234A (zh) * | 2016-02-01 | 2017-08-08 | 中国移动通信集团公司 | 一种信息推送方法及缓存服务器 |
CN107025234B (zh) * | 2016-02-01 | 2020-11-06 | 中国移动通信集团公司 | 一种信息推送方法及缓存服务器 |
CN106095506A (zh) * | 2016-06-14 | 2016-11-09 | 乐视控股(北京)有限公司 | 一种页面加载方法及装置 |
CN107656934A (zh) * | 2016-07-25 | 2018-02-02 | 腾讯科技(深圳)有限公司 | 一种预加载方法、装置、设备 |
CN107798008A (zh) * | 2016-08-31 | 2018-03-13 | 腾讯科技(深圳)有限公司 | 内容推送系统、方法及装置 |
CN107798008B (zh) * | 2016-08-31 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 内容推送系统、方法及装置 |
CN106776947A (zh) * | 2016-12-02 | 2017-05-31 | 乐视控股(北京)有限公司 | 资源获取方法、装置及终端 |
CN112968939A (zh) * | 2017-01-05 | 2021-06-15 | 创新先进技术有限公司 | 一种移动端资源加载方法和装置 |
CN112968939B (zh) * | 2017-01-05 | 2023-12-05 | 创新先进技术有限公司 | 一种移动端资源加载方法和装置 |
CN107230130A (zh) * | 2017-04-28 | 2017-10-03 | 杭州集盒网络技术有限公司 | 一种商圈数据显示方法 |
CN107798061A (zh) * | 2017-09-18 | 2018-03-13 | 维沃移动通信有限公司 | 一种网页加载方法及移动终端 |
CN110737447A (zh) * | 2018-07-18 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 应用更新方法和装置 |
CN110737447B (zh) * | 2018-07-18 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 应用更新方法和装置 |
CN110134896A (zh) * | 2019-05-17 | 2019-08-16 | 山东渤聚通云计算有限公司 | 一种代理服务器的监控过程及智能缓存方法 |
CN110569462A (zh) * | 2019-07-31 | 2019-12-13 | 深圳市富途网络科技有限公司 | 一种网络请求数据管理方法、数据管理设备及可读介质 |
CN110674379A (zh) * | 2019-09-26 | 2020-01-10 | 凡普数字技术有限公司 | 获取信息的方法、装置以及存储介质 |
CN111131019A (zh) * | 2019-12-12 | 2020-05-08 | 华为技术有限公司 | 一种多路http通道复用的方法及终端 |
CN111131019B (zh) * | 2019-12-12 | 2021-06-22 | 华为技术有限公司 | 一种多路http通道复用的方法及终端 |
US12126523B2 (en) | 2019-12-12 | 2024-10-22 | Huawei Technologies Co., Ltd. | Method for multiplexing HTTP channels and terminal |
CN111191158A (zh) * | 2019-12-27 | 2020-05-22 | 北京达佳互联信息技术有限公司 | 网页资源缓存方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102710748B (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102710748A (zh) | 数据获取方法、系统及设备 | |
US10411956B2 (en) | Enabling planned upgrade/downgrade of network devices without impacting network sessions | |
CN102932352B (zh) | 和客户端进行通信的方法以及服务器 | |
CN102594877B (zh) | 结合重定向下载请求和代理服务加速网络服务的方法、系统 | |
EP2888862B1 (en) | Information transmission method, apparatus, and system, terminal, and server | |
CN102904903B (zh) | 通信系统和通信方法 | |
US10015204B2 (en) | Method, terminal, and server for restoring transmission of session content | |
WO2004104867A2 (en) | System for doing service location management taking into account the node and network characteristics | |
US20140280768A1 (en) | Migration of network connection under mobility | |
WO2015106692A1 (en) | Webpage pushing method, client, server, and system | |
CN106293794A (zh) | 加载页面的方法、装置和系统 | |
CN102394880A (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
CN103401946A (zh) | Http上传加速方法和系统 | |
CN102158518B (zh) | 一种cdn网络中的数据传输方法、网络节点及系统 | |
CN109347925A (zh) | 缓存方法、缓存边缘服务器、缓存核心服务器和缓存系统 | |
CN104639591A (zh) | 一种终端设备及web网页多屏共享的方法 | |
US20120197971A1 (en) | Enhanced web-browsing system and method | |
Qiao et al. | Ccnxtomcat: An extended web server for content-centric networking | |
CN106911732A (zh) | 一种网站访问加速方法及装置 | |
EP1625725B1 (en) | Method for adapting service location placement based on recent data received from service nodes and actions of the service location manger | |
JP2009110041A (ja) | ウェブ画面の共有システム、その共有用端末機およびその共有プログラム | |
CN101075955B (zh) | 一种浏览器和即时通讯器同时访问网络的方法和装置 | |
CN102571851B (zh) | 一种数据通信方法和系统 | |
CN103220278A (zh) | 对网页的访问连接请求进行控制的方法及网关 | |
RU120259U1 (ru) | Система мультимедийного интерактивного взаимодействия |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |