书签 分享 收藏 举报 版权申诉 / 15

从网络中获取数据的方法和设备.pdf

  • 上传人:Y948****062
  • 文档编号:1489873
  • 上传时间:2018-06-17
  • 格式:PDF
  • 页数:15
  • 大小:3.89MB
  • 摘要
    申请专利号:

    CN201310238057.0

    申请日:

    2013.06.17

    公开号:

    CN103336671A

    公开日:

    2013.10.02

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20130617|||公开

    IPC分类号:

    G06F3/06

    主分类号:

    G06F3/06

    申请人:

    北京奇虎科技有限公司; 奇智软件(北京)有限公司

    发明人:

    杨涛; 吕本伟

    地址:

    100088 北京市西城区新街口外大街28号D座112室(德胜园区)

    优先权:

    专利代理机构:

    北京市隆安律师事务所 11323

    代理人:

    权鲜枝;董垚

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种根据来自客户端的请求从网络中获取数据的方法和设备,该方法包括步骤,接收来自客户端的数据获取请求;根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器中;以及根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。本发明能够解决将抓取的数据和该数据的元数据信息都存储到同一存储器中,使得抓取的数据存储的可靠性降低,并导致抓取数据的操作的效率降低的技术问题。

    权利要求书

    1.   一种根据来自客户端的请求从网络中获取数据的方法,包括步骤:
    接收来自客户端的数据获取请求,
    根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器中,以及
    根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。

    2.
       如权利要求1所述的方法,还包括步骤:
    从第二存储器中读取该数据的元数据信息,根据所读取的元数据信息中的数据标识从第一存储器中读取数据,将所读取的数据返回到客户端。

    3.
       如权利要求1‑3任一个所述的方法,还包括:
    所述第二存储器中存储有用于记录数据抓取前元数据信息的第一队列;
    所述根据该数据获取请求中的信息,从网络中获取数据的步骤包括:根据数据获取请求中的信息从第一队列中读取抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取数据。

    4.
       根据权利要求3所述的方法,其中,
    所述抓取前元数据信息包括数据的处理标识和数据的原始URL,并且至少包括下列信息之一,
    数据抓取的参考信息和数据抓取的URL。

    5.
       根据权利要求2所述的方法,其中,
    所述第二存储器中存储有用于记录数据抓取后元数据信息的第二队列;
    所述根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中步骤包括:根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二队列中;
    所述从第二存储器中读取该数据的元数据信息包括:从第二队列中读取该数据的抓取后元数据信息。

    6.
       一种根据来自客户端的请求从网络中获取数据的设备,该设备包括:
    第一存储器,适于存储抓取的数据;
    第二存储器,适于存储抓取的数据的元数据信息;
    抓取器,耦接到第一存储器和第二存储器,适于接收来自客户端的数据获取请求,根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器中,以及根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。

    7.
       如权利要求6所述的设备,所述设备还包括:
    图片处理器,耦接到第一存储器和第二存储器,适于从第二存储器中读取该数据的元数据信息,根据所读取的元数据信息中的数据标识从第一存储器中读取数据,将所读取的数据返回到客户端。

    8.
       如权利要求6‑7中任一个所述的设备,其中,
    所述第二存储器,还适于存储用于记录数据抓取前元数据信息的第一队列;
    所述抓取器适于根据数据获取请求中的信息从第一队列中读取抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取数据。

    9.
       根据权利要求8所述的设备,其中,
    所述抓取前元数据信息包括数据的处理标识和数据的原始URL,并且至少包括下列信息之一,
    数据抓取的参考信息和数据抓取的URL。

    10.
       根据权利要求7所述的设备,其中,
    所述第二存储器适于存储用于记录数据抓取后元数据信息的第二队列;
    所述抓取器适于根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二队列中;
    所述图片处理器适于从第二队列中读取该数据的抓取后元数据信息。

    说明书

    从网络中获取数据的方法和设备
    技术领域
    本发明涉及计算机网络领域,具体涉及一种根据来自客户端的请求从网络中获取数据的方法和设备。
    背景技术
    现有技术中,从网络中获取数据的技术方案主要为接收来自客户端的数据获取请求,根据该数据获取请求从网络中抓取数据,并将抓取的数据返回给客户端。在该数据抓取操作中需要存储抓取的数据和该数据的元数据信息。现有技术中,将抓取的数据和该数据的元数据信息都存储到内存中,例如,使用Redis(远程字典服务存储器)存储抓取的数据和该数据的元数据信息就是如此。由于,从网络中抓取数据的任务急剧增加,从而导致该存储器的存储量急剧增加,可以达到30G~40G,导致该内存容易出现故障。
    因此,现有技术中将抓取的数据和该数据的元数据信息都存储到同一存储器的技术方案,使得抓取的数据存储的可靠性降低,并且影响抓取的数据的读写速度,导致抓取数据的操作的效率降低。
    发明内容
    鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的根据来自客户端的请求从网络中获取数据的方法和设备。
    依据本发明的一个方面,提供了根据来自客户端的请求从网络中获取数据的方法。该方法包括步骤,接收来自客户端的数据获取请求;根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器中;以及根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。
    可选地,该方法还包括步骤,从第二存储器中读取该数据的元数据信息,根据所读取的元数据信息中的数据标识从第一存储器中读取数据,将所读取的数据返回到客户端。
    可选地,该方法还包括步骤,在从所述第一存储器中读取数据之后,从所述第一存储器中删除该数据记录。
    可选地,上述第一存储器为键值key‑value存储器,上述第二存储器为键值key‑value存储器。
    可选地,第一存储器的读写速度低于第二存储器的读写速度;第一存储器的存储空间大于第二存储器的存储空间。
    可选地,该方法还包括第二存储器中存储有用于记录数据抓取前元数据信息的第一队列。上述根据该数据获取请求中的信息,从网络中获取数据的步骤包括:根据数据获取请求中的信息从第一队列中读取抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取数据。
    可选地,抓取前元数据信息包括数据的处理标识和数据的原始URL,并且至少包括下列信息之一:数据抓取的参考信息和数据抓取的URL。
    可选地,第二存储器中存储有用于记录数据抓取后元数据信息的第二队列。上述根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中步骤包括:根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二队列中。上述从第二存储器中读取该数据的元数据信息包括:从第二队列中读取该数据的抓取后元数据信息。
    可选地,抓取后元数据信息包括数据处理标识和数据在第一存储器中的数据标识,并且至少包括下列信息之一:数据原始URL、数据抓取的状态信息、错误信息和错误码。
    根据本发明的另一方面,提供了一种根据来自客户端的请求从网络中获取数据的设备。该设备包括第一存储器、第二存储器和抓取器。第一存储器适于存储抓取的数据;第二存储器适于存储抓取的数据的元数据信息;抓取器耦接到第一存储器和第二存储器,适于接收来自客户端的数据获取请求,根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器中,以及根据该数据获取请求中的信息和所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。
    可选地,该设备还包括图片处理器,该图片处理器耦接到第一存储器和第二存储器,适于从第二存储器中读取该数据的元数据信息,根据所读取的元数据信息中的数据标识从第一存储器中读取数据,将所读取的数据返回到客户端。
    可选地,图片处理器还适于在从所述第一存储器中读取数据之后,从所述第一存储器中删除该数据记录。
    可选地,第一存储器为键值key‑value存储器,第二存储器为键值key‑value存储器。
    可选地,第一存储器的读写速度低于第二存储器的读写速度,第一存储器的存储空间大于第二存储器的存储空间。
    可选地,第二存储器还适于存储用于记录数据抓取前元数据信息的第一队列。抓取器适于根据数据获取请求中的信息从第一队列中读取抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取数据。
    可选地,抓取前元数据信息包括数据的处理标识和数据的原始URL,并且至少包括下列信息之一,
    数据抓取的参考信息和数据抓取的URL。
    可选地,第二存储器适于存储用于记录数据抓取后元数据信息的第二队列。抓取器适于根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二队列中。所述图片处理器适于从第二队列中读取该数据的抓取后元数据信息。
    可选地,所述抓取后元数据信息包括数据处理标识和数据在第一存储器中的数据标识,并且至少包括下列信息之一,
    数据原始URL、数据抓取的状态信息、错误信息和错误码。
    根据本发明的技术方案,接收来自客户端的数据获取请求,根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器中,以及根据该数据获取请求中的信息和所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。
    可以将获取的数据与数据的元数据信息分别存储到第一存储器和第二存储器中,降低存储器的存储量和处理速度的要求,由此解决了将抓取的数据和该数据的元数据信息都存储到同一存储器中,使得抓取的数据存储的可靠性降低,并导致抓取数据的操作的效率降低的技术问题。取得了提高抓取的数据存储的可靠性和抓取的数据的读写速度的有益效果。
    上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式
    附图说明
    通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
    图1示出了根据本发明一个实施例的根据来自客户端的请求从网络中获取数据的设备的结构图;
    图2示出了根据本发明一个实施例的进行设备扩展的示例图;以及
    图3示出了根据本发明一个实施例的根据来自客户端的请求从网络中获取数据的方法的流程图。
    具体实施方式
    下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
    参见图1,示出了根据本发明一个实施例的根据来自客户端的请求从网络中获取数据的设备的结构图。该设备包括第一存储器130、第二存储器140、抓取器110和图片处理器120。
    第一存储器130适于存储抓取的数据。第二存储器140适于存储抓取的数据的元数据信息。
    举例而言,第一存储器130可以为键值key‑value存储器,第二存储器140也可以为键值key‑value存储器。其中,第一存储器130的读写速度低于第二存储器140的读写速度,第一存储器130的存储空间大于第二存储器140的存储空间。在具体实现时,第一键值存储器可以为谷歌公司引导开发的键值存储器Leveldb,第二键值存储器可以为远程字典服务存储器Redis。该Leveldb为内存之外的外部存储器,使用Leveldb能够减少对设备内存的消耗。同时,由于数据的元数据信息相对于数据而言较小,因此将其存储于使用内存的Redis中。由此,既能够方便数据的元数据信息的读取,又能够减小对内存空间的占用,进一步提高存储的可靠性。实践证明,采用本发明中技术方案,Redis对内存使用量为1G左右;而Leveldb对内存的使用量仅为200M~300M。与现有技术中30G~40G的内存使用量相比,采用本发明中技术方案对存储性能具有显著提升。
    抓取器110耦接到第一存储器130和第二存储器140。该抓取器110适于接收来自客户端的数据获取请求,根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器130中,以及根据该数据获取请求中的信息和所获取的数据存储在第一存储器130中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器140中。
    图片处理器120耦接到第一存储器130和第二存储器140。该图片处理器120适于从第二存储器140中读取该数据的元数据信息,根据所读取的元数据信息中的数据标识从第一存储器130中读取数据,将所读取的数据返回到客户端。
    此外,图片处理器120还适于在从第一存储器130中读取数据之后,从第一存储器130中删除该数据记录。通过删除操作,能够避免无用数据占用第一存储器130中空间,进一步节约第一存储器130的存储空间。
    由此,通过采用上述技术方案,将获取的数据与数据的元数据信息分别存储到第一存储器和第二存储器中,降低内存的存储量和处理速度的要求,解决了将抓取的数据和该数据的元数据信息都存储到同一存储器中,使得抓取的数据存储的可靠性降低,并导致抓取数据的操作的效率降低的技术问题。取得了提高抓取的数据存储的可靠性和抓取的数据的读写速度的有益效果。
    在一具体实施方式中,第二存储器140中存储第一队列和第二队列。第一队列用于记录数据抓取前元数据信息。第二队列用于记录数据抓取后元数据信息。
    在进行数据抓取时,首先,抓取器110根据数据获取请求中的信息从第一队列中读取抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取数据,将所获取的数据存储到第一存储器130中。其中,抓取前元数据信息包括数据的处理标识和数据的原始URL,并且至少包括下列信息之一,数据抓取的参考信息和数据抓取的URL。
    然后,抓取器110根据该数据获取请求中的信息以及所获取的数据存储在第一存储器130中的数据标识生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二队列中。所述抓取后元数据信息包括数据处理标识和数据在第一存储器130中的数据标识,并且至少包括下列信息之一,数据原始URL、数据抓取的状态信息、错误信息和错误码。
    之后,图片处理器120从第二队列中读取该数据的抓取后元数据信息,根据所读取的元数据信息中的数据标识从第一存储器130中读取数据,将所读取的数据返回到客户端。
    举例而言,抓取器110所抓取的数据为图片数据。第二存储器Redis的第一队列中存储的抓取前元数据信息包括:Taskid(数据的处理标识),Imgurl(数据的原始URL),Refer(数据抓取的参考信息)和Cookie(数据抓取的URL)。该抓取前元数据信息为json格式。
    在举例中,该抓取前元数据信息的赋值如下所述。

    抓取器110根据数据获取请求中URL,从第一队列中读取imgurl以及与该URL匹配的抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取图片数据,将所获取的图片数据存储到第一存储器Leveldb中。
    就此例子而言,抓取器110要抓取URL地址为http://www.shanghuoliutong.cn/index.files/qqxinfeng_6.tif的图片,为了能够顺利抓到该gif图片,抓取器110会在http请求的referer字段中使用值http://www.shanghuoliutong.cn/,并且不设置cookie,从而能够顺利获取该图片数据。一些网站为了防止被外部请求访问,会仅仅允许具有特定referer和cookie的请求来访问其网站中的数据,为此,需要在元数据中提供这些信息,然后应当注意的是,所有可以使得抓取器110顺利获取URL对应数据的信息都可以包含在元数据信息中,并且在本发明的保护范围之内。
    其中,Leveldb为key‑value存储器,抓取器110根据该数据获取请求中的信息以及所获取的数据存储在Leveldb中的key生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二存储器Redis的第二队列中。
    第二存储器Redis的第二队列中存储的抓取后元数据信息包括Taskid(数据的处理标识),Imgurl(数据的原始URL),Img_store_key(数据在第一存储器130中的数据标识,即所获取的数据存储在Leveldb中的key),status(数据抓取的状态信息),Errormsg(错误信息)和Errorno(错误码)。该抓取后元数据信息为json格式。
    在举例中,该抓取后元数据信息的赋值如下所述。

    就此例子而言,抓取器110要抓取URL地址为http://www.ps123.net/Art/UploadFiles/200904/2009040317273677.TIF的图片,抓取完成后,Status中信息为SUCC,表示该图片抓取成功。抓取的图片数据存储在Leveldb,对应的key值为Img_store_key中值davimg_T_136ffa49727e365fafe19db8a5df51fc。因为,此次抓取成功,所以Errorno中信息为0,Errormsg中信息为ok。如果抓取失败,则Status中信息为FAIL,Errorno中信息为本次抓取出现的错误对应的错误码,Errormsg中信息为本次抓取出现的错误对应的错误信息。在抓取失败时,可以根据Errorno和Errormsg中信息进行错误定位或错误提示。
    图片处理器120从第二存储器Redis第二队列中读取该数据的抓取后元数据信息,在第一存储器Leveldb中按所读取的抓取后元数据信息中Img_store_key查找到抓取的图片数据,将该图片数据返回到客户端。
    就此例子而言,图片处理器120从第二存储器Redis第二队列中读取图片数据的抓取后元数据信息中Status,在确定Status中信息为SUCC后,读取Img_store_key中值davimg_T_136ffa49727e365fafe19db8a5df51fc,按该值从第一存储器Leveldb中查找到抓取的图片数据,将该图片数据返回到客户端。如果Status中信息为FAIL,则表示图片数据没有抓取成功,图片处理器120结束图片处理操作,并可以读取Errorno和Errormsg中信息进行错误定位或错误提示。
    在该举例中,一台设备上的抓取器110和图像处理器访问的第二存储器140和第一存储器130存在于本台设备上,没有涉及到公共存储,因此易于扩展。如图2所示,在需要进行扩展时,增加本发明所述设备即可,可以将获取数据的请求按任务负载均衡的原则在多个设备中分配,从而完成从网络中抓取数据的任务。
    上述设备包括第一存储器130、第二存储器140、抓取器110和图片处理器120的结构为一种可选的实现方式,本发明不限于此。特别地,图片处理器120为可选装置。在需要向客户端返回数据时,选择在设备中除第一存储器130、第二存储器140和抓取器110之外添加图片处理器120。在不需要向客户端返回数据时,设备中可以仅包括第一存储器130、第二存储器140和抓取器110。
    参见图3,示出了根据本发明一个实施例的根据来自客户端的请求从网络中获取数据的方法的流程图。
    该方法始于步骤S310,在该步骤中接收来自客户端的数据获取请求。随后,进入步骤S320,在该步骤根据该数据获取请求中的信息,从网络中获取数据,将所获取的数据存储到第一存储器。之后,进入步骤S330,在该步骤根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的元数据信息,并且将所生成的元数据信息存储到第二存储器中。
    举例而言,第一存储器可以为键值key‑value存储器,第二存储器也可以为键值key‑value存储器。其中,第一存储器的读写速度低于第二存储器的读写速度,第一存储器的存储空间大于第二存储器的存储空间。在具体实现时,第一键值存储器可以为谷歌公司引导开发的键值存储器Leveldb,第二键值存储器可以为远程字典服务存储器Redis。该Leveldb为内存之外的外部存储器,使用Leveldb能够减少对设备内存的消耗。同时,由于数据的元数据信息相对于数据而言较小,因此将其存储于使用内存的Redis中。由此,既能够方便数据的元数据信息的读取,又能够减小对内存空间的占用,进一步提高存储的可靠性。实践证明,采用本发明中技术方案,Redis对内存使用量为1G左右;而Leveldb对内存的使用量仅为200M~300M。与现有技术中30G~40G的内存使用量相比,采用本发明中技术方案对存储性能具有显著提升。
    在完成步骤S330之后进入步骤S340,在该步骤中从第二存储器中读取该数据的元数据信息,根据所读取的元数据信息中的数据标识从第一存储器中读取数据,将所读取的数据返回到客户端。之后,进入步骤S350,在从第一存储器中读取数据之后,从所述第一存储器中删除该数据记录。通过删除操作,能够避免无用数据占用第一存储器中空间,进一步节约第一存储器的存储空间。
    由此,通过采用上述技术方案,将获取的数据与数据的元数据信息分别存储到第一存储器和第二存储器中,降低内存的存储量和处理速度的要求,解决了将抓取的数据和该数据的元数据信息都存储到同一存储器中,使得抓取的数据存储的可靠性降低,并导致抓取数据的操作的效率降低的技术问题。取得了提高抓取的数据存储的可靠性和抓取的数据的读写速度的有益效果。
    在一具体实施方式中,第二存储器中存储第一队列和第二队列。第一队列用于记录数据抓取前元数据信息。第二队列用于记录数据抓取后元数据信息。
    在进行数据抓取时,首先,在步骤S320中根据数据获取请求中的信息从第一队列中读取抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取数据,将所获取的数据存储到第一存储器中。其中,抓取前元数据信息包括数据的处理标识和数据的原始URL,并且至少包括下列信息之一,数据抓取的参考信息和数据抓取的URL。
    然后,在步骤S330中根据该数据获取请求中的信息以及所获取的数据存储在第一存储器中的数据标识生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二队列中。所述抓取后元数据信息包括数据处理标识和数据在第一存储器中的数据标识,并且至少包括下列信息之一,数据原始URL、数据抓取的状态信息、错误信息和错误码。
    之后,在步骤S340中从第二队列中读取该数据的抓取后元数据信息,根据所读取的元数据信息中的数据标识从第一存储器中读取数据,将所读取的数据返回到客户端。
    举例而言,所抓取的数据为图片数据。第二存储器Redis的第一队列中存储的抓取前元数据信息包括:Taskid(数据的处理标识),Imgurl(数据的原始URL),Refer(数据抓取的参考信息)和Cookie(数据抓取的URL)。该抓取前元数据信息为json格式。
    在举例中,该抓取前元数据信息的赋值如下所述。

    步骤S320中根据数据获取请求中URL,从第一队列中读取imgurl与该URL匹配的抓取前元数据信息,根据所读取的抓取前元数据信息在网络中抓取图片数据,将所获取的图片数据存储到第一存储器Leveldb中。
    就此例子而言,要抓取URL地址为http://www.shanghuoliutong.cn/index.files/qqxinfeng_6.tif的图片,为了能够顺利抓到该gif图片,在步骤S320中在http请求的referer字段中使用值http://www.shanghuoliutong.cn/,并且不设置cookie,从而能够顺利获取该图片数据。一些网站为了防止被外部请求访问,会仅仅允许具有特定referer和cookie的请求来访问其网站中的数据,为此,需要在元数据中提供这些信息,然后应当注意的是,所有可以使得抓取器110顺利获取URL对应数据的信息都可以包含在元数据信息中,并且在本发明的保护范围之内。
    其中,Leveldb为key‑value存储器,在步骤S330中根据该数据获取请求中的信息以及所获取的数据存储在Leveldb中的key生成该数据的抓取后元数据信息,将所生成的抓取后元数据信息存储到第二存储器Redis的第二队列中。
    第二存储器Redis的第二队列中存储的抓取后元数据信息包括Taskid(数据的处理标识),Imgurl(数据的原始URL),Img_store_key(数据在第一存储器中的数据标识,即所获取的数据存储在Leveldb中的key),status(数据抓取的状态信息),Errormsg(错误信息)和Errorno(错误码)。该抓取后元数据信息为json格式。
    在举例中,该抓取后元数据信息的赋值如下所述。

    就此例子而言,要抓取URL地址为http://www.ps123.net/Art/UploadFiles/200904/2009040317273677.TIF的图片,抓取完成后,Status中信息为SUCC,表示该图片抓取成功。抓取的图片数据存储在Leveldb,对应的key值为Img_store_key中值davimg_T_136ffa49727e365fafe19db8a5df51fc。因为,此次抓取成功,所以Errorno中信息为0,Errormsg中信息为ok。如果抓取失败,则Status中信息为FAIL,Errorno中信息为本次抓取出现的错误对应的错误码,Errormsg中信息为本次抓取出现的错误对应的错误信息。在抓取失败时,可以根据Errorno和Errormsg中信息进行错误定位或错误提示。
    在步骤S340中从第二存储器Redis第二队列中读取该数据的抓取后元数据信息,在第一存储器Leveldb中按所读取的抓取后元数据信息中Img_store_key查找到抓取的图片数据,将该图片数据返回到客户端。
    就此例子而言,从第二存储器Redis第二队列中读取图片数据的抓取后元数据信息中Status,在确定Status中信息为SUCC后,读取Img_store_key中值davimg_T_136ffa49727e365fafe19db8a5df51fc,按该值从第一存储器Leveldb中查找到抓取的图片数据,将该图片数据返回到客户端。如果Status中信息为FAIL,则表示图片数据没有抓取成功,因此结束步骤S340中图片处理操作,并可以读取Errorno和Errormsg中信息进行错误定位或错误提示。
    上述方法包括步骤S310至步骤S350的流程为一种可选的实现方式,本发明不限于此。特别地,步骤S340和步骤S350为可选步骤。在需要向客户端返回数据时,选择在方法中在步骤S310至步骤S330之后进行步骤S340和步骤S350。在不需要向客户端返回数据时,方法中可以仅包括步骤S310至步骤S330。
    A3、如A1或者2所述的方法,还包括步骤:在从所述第一存储器中读取数据之后,从所述第一存储器中删除该数据记录。A4、如A1‑3中任一个所述的方法,其中所述第一存储器为键值key‑value存储器;所述第二存储器为键值key‑value存储器。A5、如A4所述的方法,其中,所述第一存储器的读写速度低于所述第二存储器的读写速度;所述第一存储器的存储空间大于所述第二存储器的存储空间。A9、根据A8所述的方法,其中,所述抓取后元数据信息包括数据处理标识和数据在第一存储器中的数据标识,并且至少包括下列信息之一,数据原始URL、数据抓取的状态信息、错误信息和错误码。
    B12、如B10或者11所述的设备,其中,所述图片处理器,还适于在从所述第一存储器中读取数据之后,从所述第一存储器中删除该数据记录。B13、如B10‑12中任一个所述的设备,其中所述第一存储器为键值key‑value存储器;所述第二存储器为键值key‑value存储器。B14、如B13中任一个所述的设备,其中,所述第一存储器的读写速度低于所述第二存储器的读写速度;所述第一存储器的存储空间大于所述第二存储器的存储空间。B18、根据权利要求17所述的设备,其中,所述抓取后元数据信息包括数据处理标识和数据在第一存储器中的数据标识,并且至少包括下列信息之一,数据原始URL、数据抓取的状态信息、错误信息和错误码。
    在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
    在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
    类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
    本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
    此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
    本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的根据来自客户端的请求从网络中获取数据的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
    应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

    关 键  词:
    网络 获取 数据 方法 设备
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:从网络中获取数据的方法和设备.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1489873.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1