CN109284428B - 数据处理方法、装置及存储介质 - Google Patents
数据处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109284428B CN109284428B CN201810916338.XA CN201810916338A CN109284428B CN 109284428 B CN109284428 B CN 109284428B CN 201810916338 A CN201810916338 A CN 201810916338A CN 109284428 B CN109284428 B CN 109284428B
- Authority
- CN
- China
- Prior art keywords
- picture
- index
- url
- meta information
- character string
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法,所述方法包括:确定待转储的数据对应的索引标记;查询数据库中是否保存有与所述索引标记对应的元信息;如果所述数据库中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存,其中,所述内容提供服务器用于响应于页面访问请求,根据所述元信息从数据存储服务器获取所述数据。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种数据处理方法、装置及存储介质。
背景技术
随着网络的迅速发展,如何有效地提取并利用网络上的信息成为一个巨大的挑战。因此,网络爬虫应运而生。网络爬虫,是一种按照一定的规则,自动地抓取网络信息的程序或者脚本。
使用网络爬虫技术,能从互联网上爬取大量的网页内容,然后对网页进行分析、去除其中的广告等内容,得到有价值的内容部分。然后将这些有价值的内容部分转储到内容分发网络(CDN,content Delivery network)。
通过转储,可以防止源网站的网页失效,又能利用内容分发网络来加快用户下载速度。其中,对于网页中包含的文字内容,由于其占用空间小,内容变化大,可以不进行转储。对于网页中包含的图片、音频、视频等多媒体内容,通常需要进行转储。以图片为例,其转储的过程可以包括下面几个步骤:
(1)根据爬取到的统一资源定位符(URL,Uniform Resource Locator)下载待转储的图片;
(2)根据预定的目标尺寸,对下载的所述图片进行裁减压缩;
(3)将裁减压缩后的所述图片到上传内容分发网络;
(4)读取所述图片的元信息,包括:图片裁减后的宽度、裁减后的高度、图片大小、图片类型(如gif、jpg、png等);
(5)将所述图片的元信息保存到数据库。
在上述过程中,根据URL下载图片的过程大概需要耗时5000ms,是耗时最多的一个步骤。
技术内容
本申请一些实施例提供了一种数据处理方法、装置及储存介质,以提高数据的转储效率。
本申请实施例提供的数据处理方法包括:
确定待转储的数据对应的索引标记;
查询数据库中是否保存有与所述索引标记对应的元信息;
如果所述数据库中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存,其中,所述内容提供服务器用于响应于页面访问请求,根据所述元信息从数据存储服务器获取与所述元信息对应的数据。
本申请实施例提供的一种数据处理装置包括:
确定模块,用于确定待转储的数据对应的索引标记;
第一查询模块,用于查询数据库中是否保存有与所述索引标记对应的元信息;
转储模块,用于如果所述数据库中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存,其中,所述内容提供服务器用于响应于页面访问请求,根据所述元信息从数据存储服务器获取与所述元信息对应的数据。
本申请实施例还提供了一种非易失性计算机可读存储介质,其中所述存储介质中存储有机器可读指令,所述机器可读指令可以由处理器执行以完成上述方法。
在本申请实施例提供的技术方案中,如果待转储的数据的索引标记命中数据库,就会跳过后续的处理步骤,这样可以跳过耗时最长的下载过程,节省了数据处理服务器大量的处理资源,而且也节省了数据存储服务器的存储资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1A为本申请一些实施例中图片转储过程中各个步骤的耗时示意图;
图1B为本申请一些实施例中的操作环境示意图;
图2为本申请一些实施例提供的数据处理方法的流程图;
图3A和3B为本申请一些实施例中的数据处理方法的另一流程图;
图4A至4C为本申请一些实施例中用户界面的示意图;
图5为本申请一些实施例中数据处理方法的交互示意图;
图6为本申请一些实施例中数据处理装置的结构示意图;及
图7为本申请一些实施例中数据处理装置的另一结构示意图。
具体实施方式
为使本申请的技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请进一步详细说明。
网络爬虫能从互联网上爬取大量的网页内容,然后对网页进行分析、去除其中的广告等内容,得到有价值的内容部分。然后将这些有价值的内容部分转储。通过转储,可以防止源网站的网页失效,又能利用内容分发网络来加快用户下载速度。在转储的过程中,下载的过程大概需要耗时5000ms,是转储过程中耗时最多的一个步骤。
例如,参见图1A,图1A示出了图片转储过程中各个步骤的耗时示意图。如图1A所示,在图片转储的各个步骤中,下载图片的步骤是耗时最多的。
本申请实施例提供了一种数据处理方法,以提高数据转储的效率。在本申请一些实施例中,对于已经在数据存储服务器中保存的数据,在数据库中保存有这些数据的索引标记与其元信息的对应关系。如果待转储的数据的索引标记命中数据库,就会跳过后续的处理步骤,这样可以跳过耗时最长的下载过程,节省了大量的下载时间和带宽资源,而且由于不需要重复存储,也节省了数据存储服务器的存储资源。
此外,对于没有命中数据库的数据,会在本地磁盘中进行查找,如果本地磁盘中存在对应的数据,就直接用本地磁盘中的数据进行处理得到符合要求的目标数据,也可以避免重复下载的过程。
通过使用数据库和本地磁盘的两级缓存方式,加快了数据转储的速度,同时节省了服务器大量的处理和存储资源。
图1B为本申请一些实施例中的操作环境100的示意图。如图1B所示,多个用户各自的终端设备(例如终端设备104-a至104-c)分别通过网络106连接至内容提供服务器112。
在本申请一些实施例中,每个用户通过在终端设备104上执行的应用108-a至108-c连接至内容提供服务器112。
内容提供服务器112用于向终端设备104提供内容服务,例如可以向终端设备提供应用管理平台服务。用户可以通过应用管理平台下载、管理各种应用,搜索各种应用相关的评测内容等等。
在本申请一些实施例中,当内容提供服务器112接收到用户的页面访问请求之后,可以从自身以及数据存储服务器116中拉取数据(例如,文字内容、图片、视频、音频等),从而根据拉取的数据为用户展示页面。
网页爬取服务器110用于爬取互联网上的网页,获取网页信息,将获取的网页信息提供给数据处理服务器114,由数据处理服务器114对爬取得到的网页信息进行分析和处理,并对网页中包含的数据进行转储。
通过转储,可以防止源网站的网页失效,又能利用内容分发网络来加快用户下载速度。
在本申请一些实施例中,对于已经保存在数据存储服务器116中的数据,数据库118中记录有所述数据的索引标记以及元信息。
在本申请一些实施例中,在下载数据之前,数据处理服务器114可以确定待转储的数据对应的索引标记;查询数据库118中是否保存有与所述索引标记对应的元信息;如果所述数据库118中包含所述索引标记对应的元信息,则不需要重复下载,数据处理服务器114直接将所述元信息发送给内容提供服务器112进行保存。
这样,所述内容提供服务器112在接收到用户的页面访问请求之后,可以响应于页面访问请求,根据所述元信息从数据存储服务器116获取与所述元信息对应的数据。
在本申请一些实施例中,所述图片的元信息包括以下一个或者多个:
图片类型、图片大小、宽度、高度、在所述数据存储服务器中的地址链接、所述统一资源定位符URL、所述元信息存储到数据库的时间。
在本申请一些实施例中,当所述待转储的数据为图片时,所述数据处理服务器114可以根据所述待转储的图片的统一资源定位符URL和目标尺寸,确定所述图片对应的索引标记。
在本申请一些实施例中,数据处理服务器114可以接收网页爬取服务器112爬取的网页的超文本标记语言HTML文本;从所述HTML文本中,获取所述图片的统一资源定位符URL。
在本申请一些实施例中,由于URL的长度不固定,有的可能达到4096字节,而且可能包含有特殊字符,所以数据处理服务器114在获取到图片对应的URL之后,需要对该URL进行处理。所述数据处理服务器114可以根据散列算法,将所述统一资源定位符URL转换为字符串;根据所述内容提供服务器的展示需要,确定所述目标尺寸;将所述字符串和所述目标尺寸结合在一起,得到所述图片对应的索引标记。
例如,图片对应的URL为:
https://www.sogou.com/web?query=redis+%E5%88%86%E5%B8%83%E5%BC%8F%E7%BC%93%E5%AD%98&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=5298&sst0=1518060948546&lkt=6%2C1518060943248%2C1518060944412&sugsuv=001673520E11163158622C7E9D1B4951&sugtime=1518060948546。根据散列算法,可以将该URL转换为如下的字符串:
ccb0f571a1e8bc3dee13f286936a2e2aa1050ff7。
假设确定的目标尺寸为:宽800px,高600px。那么,最终的索引标记可以是:ccb0f571a1e8bc3dee13f286936a2e2aa1050ff7_800_600。
此外,从所述HTML文本中,数据处理服务器114还可以进一步获取所述网页包含的文字内容;
将所述文字内容发送给所述内容提供服务器112,使得所述内容提供服务器112将所述文字内容与所述图片元信息对应保存。
在本申请一些实施例中,如果所述数据库118中不包含所述索引标记对应的元信息,数据处理服务器114可以查询本地磁盘中是否包含以所述字符串为文件名的本地图片。如果本地磁盘中包含所述本地图片,对所述本地磁盘中的本地图片进行处理,得到所述待转储的图片;将所述待转储的图片上传到所述数据存储服务器116;将所述待转储的图片的元信息以及所述索引标记关联存储到所述数据库118。
在一些实施例中,如果本地磁盘中不包含以所述字符串为文件名的本地图片,数据处理服务器114可以根据所述图片的统一资源定位符URL下载该图片;根据所述目标尺寸对所述下载的图片进行处理,得到所述待转储的图片。
在本申请一些实施例中,所述数据库118可以是分布式缓存,例如redis或者memcache,也可以是其他key-value(键-值)型的非关系型的数据库(nosql数据库)。或者所述数据库118也可以是关系型数据库,该关系型数据库可以单独建一个表,只包含key、value两列,也可以封装接口,作为分布式缓存。
在本申请一些实施例中,所述数据存储服务器116可以是CDN(内容分发网络,content delivery network)中的内容分发边缘节点。CDN网络的目的是使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。CDN网络可以将服务器的内容缓存到分布全球的CDN节点。根据用户的访问IP地址,就近连接CDN节点,提高网站的响应速度。
在一些实施例中,终端设备104的示例包括但不限于掌上型计算机、可穿戴计算设备、个人数字助理(PDA)、平板计算机、笔记本电脑、台式计算机、智能手机、或任意两个或更多的这些数据处理设备或其他数据处理设备的组合。
在一些实施例中,网络106可以包括局域网(LAN)和广域网(WAN)诸如互联网。可以使用任意公知的网络协议来实现网络106,包括各种有线或无线协议。
在一些实施例中,所述内容提供服务器112、网页爬取服务器110、数据处理服务器114、数据库118和数据存储服务器116均可以在一个或多个独立的数据处理装置或分布式计算机网络上实现。
图2为本申请一些实施例中一种数据处理方法的流程图。该方法可以由图1B所示的数据处理服务器114执行。如图2所示,该方法包括以下操作:
S201,确定待转储的数据对应的索引标记。
在本申请一些实施例中,待转储的数据可以包括:图片、视频或者音频等多媒体数据。在以下的实施例中,以待转储的数据为图片进行说明。
在一些实施例中,当待转储的数据为图片时,步骤S201可以包括:根据所述待转储的图片的统一资源定位符URL和目标尺寸,确定所述图片对应的索引标记。
在一些实施例中,所述根据待转储的图片的统一资源定位符URL和目标尺寸,确定所述图片对应的索引标记包括:
根据散列算法,将所述统一资源定位符URL转换为字符串;
根据所述内容提供服务器的展示需要,确定所述目标尺寸;
将所述字符串和所述目标尺寸结合在一起,得到所述图片对应的索引标记。
S202,查询数据库中是否保存有与所述索引标记对应的元信息。
S203,如果所述数据库中包含所述索引标记对应的元信息,则将所述元信息存储到内容提供服务器,其中所述内容提供服务器用于响应页面访问请求,根据所述元信息获取与所述元信息对应的数据。
在一些实施例中,如果所述数据库中不包含所述索引标记对应的元信息,所述方法进一步包括:
查询本地磁盘中是否包含以所述字符串为文件名的本地图片;
如果本地磁盘中包含所述本地图片,对所述本地磁盘中的本地图片进行处理,得到所述待转储的图片;将所述待转储的图片上传到所述数据存储服务器;将所述待转储的图片的元信息以及所述索引标记关联存储到所述数据库。
在一些实施例中,如果本地磁盘中不包含以所述字符串为文件名的本地图片,所述方法进一步包括:
根据所述图片的统一资源定位符URL下载该图片;
根据所述目标尺寸对所述下载的图片进行处理,得到所述待转储的图片。
在本申请实施例中,通过将数据的元信息插入到数据库,可以通过查询数据库来确定是否下载过相同的数据。而且,在本申请实施例中,通过采用数据库,如果待转储的数据的索引标记命中数据库,就会跳过后续的处理步骤,这样可以跳过耗时最长的下载过程,节省了大量的处理资源和存储资源。
对于没有命中数据库的数据,会根据文件名在本地磁盘中进行查找,如果本地磁盘中存在该数据,就直接用本地磁盘中的数据进行处理得到目标数据,也可以避免重复下载的过程。
综上,本申请实施例中采用了数据库和本地磁盘缓存的两级缓存方式,加快了数据转储的速度,同时节省了服务器大量的处理和存储资源。
图3是本申请一些实施例提供的另一数据处理方法的流程图。该方法可以由图1B所示的数据处理服务器114执行。在图3所示的实施例中,以所述待转储的数据为图片、所述数据存储服务器为CDN、所述数据库为分布式缓存为例进行说明。
在本申请一些实施例中,所述分布式缓存是指用于存储数据的缓存组件。由于内存的访问性能明显优于磁盘,把数据放入内存中,可以提供更快的读取效率。但在互联网业务的场景下,将所有数据都装入内存,显然是不明智的。因此,通过引入缓存组件,将高频访问的数据,放入缓存中,可以大大提高系统整体的承载能力。
例如,所述分布式缓存可以是Redis或者Memcache。Redis是内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,等数据类型。Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
在本申请一些实施例中,所述数据存储服务器可以是CDN中的内容分发边缘节点。CDN网络的目的是使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。CDN网络可以将服务器的内容缓存到分布全球的CDN节点。根据用户的访问IP地址,就近连接CDN节点,提高网站的响应速度。
如图3所示,所述方法包括以下操作:
S301,数据处理服务器接收网页爬取服务器发送的网页信息。
在本申请一些实施例中,网页爬取服务器可以从待抓取URL队列依次读取URL,并根据读取的URL进行页面信息的获取。
这里,网页爬取服务器获取的页面信息可以是网页的HTML文本。HTML文本中包含有网页展示的各种信息,例如文本、表单、图像、表格、链接、多媒体、列表等。在获取到网页信息之后,网页抓取服务器将所述网页信息发送给数据处理服务器,由数据处理服务器进行处理。
在本申请一些实施例中,在网页爬取服务器获取网页信息之前,可以根据业务需要,对待抓取URL队列中的URL进行过滤,以过滤掉与当前业务无关的URL,保留有用的URL并将其放入等待抓取的URL队列。例如,在本申请一些实施例中,内容提供服务器用于为用户提供应用管理平台,用户可以通过这个应用管理平台下载各种应用、管理已经安装的应用、查看与应用相关的评测内容等等。此时,可以过滤掉待抓取URL队列中与应用管理无关的URL,而保留与应用管理相关的URL。
S302,数据处理服务器从所述网页信息中获取网页包含的文字内容以及网页包含的图片对应的URL。
在一些实施例中,数据处理服务器可以通过网页的HTML文本获取网页中包含的文本,对这些文本进行分析过滤之后,得到有价值的纯文字内容,将这些文字内容发送给内容提供服务器进行保存,使得内容提供服务器后续可以根据用户的需要将这些文字内容展示给用户。
对于网页中的图片,数据处理服务器可以通过以下操作来获取其对应的URL。
S3021,从网页的HTML文本中,获取img标签信息。
S3022,从所述img标签信息中获取图片的URL。
例如,可以从网页的HTML文本中找到<img>标签,<img>标签中可能包含多个属性,例如src属性、alt属性、height属性、width属性等等。其中src属性表示图片的URL。下面是一个示例性的<img>标签:
<img
src="http://pp.myapp.com/ma_icon/0/icon_1105393_1530156324/256">。
其中,http://pp.myapp.com/ma_icon/0/icon_1105393_1530156324/256为图片对应的URL。
S303,数据处理服务器将图片的URL转换为该URL对应的字符串。
在本申请一些实施例中,由于URL的长度不固定,有的可能达到4096字节,而且可能包含有特殊字符,所以数据处理服务器在获取到图片对应的URL之后,需要对该URL进行处理。
在一些实施例中,数据处理服务器可以采用根据散列算法,又称Hash算法,例如md5、sha1或者sha256等算法,将图片的URL变成统一长度的字符串。散列算法是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或者数据压缩成摘要,使得数据量变小,方便计算。
例如,假设从HTML文本中获取的URL如下所示:
https://www.sogou.com/web?query=redis+%E5%88%86%E5%B8%83%E5%BC%8F%E7%BC%93%E5%AD%98&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=5298&sst0=1518060948546&lkt=6%2C1518060943248%2C1518060944412&sugsuv=001673520E11163158622C7E9D1B4951&sugtime=1518060948546。
在本申请一些实施例中,使用sha1算法对上面的URL进行计算,可以得到下面的字符串:
ccb0f571a1e8bc3dee13f286936a2e2aa1050ff7。
以上以散列函数为例进行了说明。需要注意的是,本申请实施例并不限定具体采用哪种算法,只要该算法能够将URL转换成统一长度的、不包含特殊字符的字符串即可。
另外,如果后续确定需要下载该URL对应的图片,则本步骤中计算得到的字符串可以作为该图片的文件名,以便将该图片保存到数据处理服务器的本地磁盘中。
S304,根据内容提供服务器的业务展示需要,确定该图片对应的目标尺寸。
在本申请一些实施例中,内容提供服务器可能需要在不同的用户界面上以不同的尺寸展示一张图片。例如,如图4所示,在文章列表页面410,展示的是小尺寸的图片412。当用户点击文章列表页面410中的图片412对应的文章时,展示文章正文页面420,在页面420中,展示的是中等尺寸的图片422。而当用户点击该图片422之后,在页面430中展示最大尺寸的图片432。
因此,在本申请一些实施例中,可以根据页面展示需要,为同一个图片确定一个或者多个目标尺寸。例如,可以确定目标尺寸1为:180*180px;目标尺寸2为:500*500px;目标尺寸3为:800*600px。
S305,根据步骤S303得到的字符串和S304确定的目标尺寸,得到图片对应的索引标记。
在得到图片的URL对应的字符串和目标尺寸之后,就可以将目标尺寸附加在字符串之后,得到图片对应的索引标记。
例如,步骤S303得到的字符串为ccb0f571a1e8bc3dee13f286936a2e2aa1050ff7,在这个字符串后面再附加上目标尺寸(例如宽800px,高600px),就可以得到最终的索引标记ccb0f571a1e8bc3dee13f286936a2e2aa1050ff7_800_600。
在一些实施例中,如果确定了多个目标尺寸,则可以分别将每个目标尺寸附加在字符串之后,得到多个索引标记。
以上示出了一种根据字符串和目标尺寸得到索引标记的方法。在具体应用中,也可以采用其他方法将字符串和目标尺寸结合起来,得到图片对应的索引标记。
S306,查询分布式缓存中是否保存有与所述索引标记对应的图片元信息。如果所述分布式缓存中包含对应的图片元信息,则执行步骤S312;如果不包含,则执行步骤S307。
在得到图片对应的索引标记之后,可以通过查询分布式缓存中是否保存有与该索引标记对应的图片元信息,来确定数据存储服务器(例如,CDN)中是否保存有对应的图片。如果有,则可以不必重新下载该图片。此时,可以直接将图片在数据存储服务器中的地址链接提供给内容提供服务器。这样,在内容提供服务器需要拉取该图片时,可以直接根据该地址链接从数据存储服务器拉取该图片。
在本申请一些实施例中,所述的分布式缓存可以为redis、或者memcache、或者其他类型的分布式缓存。
在分布式缓存中,都是键-值(key-value)形式的存储数据,也就是根据固定的key值,来查询实际值。在本申请一些实施例中,key值就是根据URL和目标尺寸计算出的索引标记,value值为图片的元信息。
在本申请一些实施例中,value值可以是以JSON(JavaScript ObjectNotation,JS对象简谱)格式存储的图片元信息。JSON是一种轻量级的数据交换格式,易于人阅读和编写。同时也易于机器解析和生成。
例如,下面是一个以JSON格式存储的元信息的示例:
{
"content_type":"gif",
"file_size":2343,
"width":312,
"height":204,
"cdn_url":"http://getimg.cn/3473424_312_204/0"
"original_url":"http://www.qq.com/news/abc.png"
"timestamp":1511162612
}
其中,content_type表示图片类型,content_type的具体值可以是gif,jpg,png等;
file_size表示图片大小,以字节为单位;
width代表图片裁减后的宽度;
height代表图片裁减后的高度;
cdn_url代表CDN转储用的URL,即图片实际下发给用户的URL;
original_url代表原图URL,用作备忘;
timestamp代表元信息在分布式缓存中插入的时间。
在本申请一些实施例中,数据处理服务器可以向分布式缓存发送get()命令,其中携带的参数就是计算出的索引标记(例如ccb0f571a1e8bc3dee13f286936a2e2aa1050ff7_800_600),从而获取与该索引标记对应的value值,即对应的图片元信息。
在一些实施例中,如果所述分布式缓存中包含对应的value值,则说明CDN中保存有相同的图片,此时,不需要再重复下载,只需要将分布式缓存中保存的该图片的元信息存储一份到内容提供服务器即可。
这样,内容提供服务器可以将该图片的元信息与当前网页的其他信息关联存储。当用户请求访问该页面时,内容提供服务器可以根据保存的图片元信息中得到图片的cdn_url,根据cdn_url从CDN获取该图片,将获取的图片和自身保存的该网页的其他内容(例如文字内容),提供给用户进行展示。
S307,根据步骤S303得到的字符串,在数据处理服务器查找本地硬盘中是否包含以该字符串为文件名的图片,如果本地硬盘中包含以该字符串为文件名的图片,则执行步骤S309;否则执行步骤S308。
在一些实施例中,如果所述分布式缓存中不包含对应的value值,则说明CDN中没有相同的图片。此时,可能包含两种情况,第一种是以前下载过与当前图片内容相同的图片,但是CDN中保存的图片的尺寸与当前图片的目标尺寸不同,第二种情况是:没有下载过与当前图片内容相同的图片。
对于第一种情况,可以对以前下载过的图片进行裁剪压缩得到目标尺寸的图片。
因此,在本申请一些实施例中,在判断出分布式缓存中不包含对应的value值之后,进一步判断数据处理服务器本地磁盘中是否包含以步骤S303得到的字符串为文件名的文件。
如果包含,则说明以前下载过该图片。此时,不需要进行重复下载。
如果不包含,则执行S308,下载该图片。
S308,数据处理服务器根据图片的URL下载所述图片。
在一些实施例中,数据处理服务器根据所述图片的URL,从对应的网络地址下载所述图片,并将下载的图片保存在本地磁盘中。
S309,数据处理服务器按照预定的目标尺寸对下载的图片进行裁减压缩,得到目标图片。
如前所述,由于内容提供服务器需要以不同的尺寸展示图片,所以数据处理服务器还需要根据不同的目标尺寸来对下载的图片进行裁剪压缩,以得到目标图片。
例如,目标尺寸可以是一个或者多个。如果有多个目标尺寸,则可以分别裁剪压缩出不同尺寸的目标图片。
S310,数据处理服务器将目标图片上传CDN。
在得到目标图片之后,数据处理服务器将目标图片上传到CDN,以便后续内容提供服务器需要向用户展示页面的时候,可以根据图片的元信息从CDN中获取对应的图片。
S311,获取图片的元信息,将图片的元信息插入到分布式缓存。
在本申请一些实施例中,所述的元信息可以包括:目标图片在CDN中的URL、图片的类型、大小、宽度、高度、原始URL等信息。
数据处理服务器可以图片的元信息插入到分布式缓存中,以供后续查询。元信息在分布式缓存中的具体保存形式可以如S306所述,在此不再赘述。
在一些实施例中,数据处理服务器可以通过set命令,将图片的元信息插入到分布式缓存中,其中set命令的参数是图片对应的索引标记。在步骤S305所述,已经计算当前图片对应的索引标记,所以在本步骤中,可以直接根据步骤S305中计算出的索引标记,将图片的元信息作为与该索引标记对应的value值,插入到分布式缓存中。
S312,数据处理服务器将图片的元信息发送给内容提供服务器。
在本申请实施例中,除了将图片的元信息插入到分布式缓存之外,还需要将图片的元信息发送给内容提供服务器,使得内容提供服务器将图片的元信息与包含该图片的页面的其他信息,例如步骤S302中保存的文字内容,关联保存到内容提供服务器中。
这样,当用户请求访问该页面时,内容提供服务器可以根据该页面包含的图片的元信息到CDN中获取对应的图片,并将图片和其他相关信息一起展示给用户。
在本申请实施例中,通过将图片的元信息插入到分布式缓存,可以通过查询分布式缓存来确定是否下载过相同的图片。由于分布式缓存是在内存中维护数据,存取速度快,可以大大提高数据处理服务器查询的速度,同时也减轻了CDN的处理压力。
而且,在本申请实施例中,通过采用分布式缓存,如果待转储的图片的索引标记命中分布式缓存,就会跳过后续的处理步骤,直接执行步骤S313,这样可以跳过耗时最长的下载过程,节省了数据处理服务器大量的处理资源,而且也节省了CDN的存储资源。
对于没有命中分布式缓存的图片,会根据文件名在数据处理服务器的本地磁盘中进行查找,如果本地磁盘中存在该文件,就直接用本地磁盘中的文件进行裁减压缩得到目标图片,也可以避免重复下载的过程。
综上,本申请实施例中采用了分布式缓存和本地磁盘缓存的两级缓存方式,加快了图片转储的速度,同时节省了服务器大量的处理和存储资源。
下面结合图5对本申请实施例提供的数据处理方法进行说明。图5为本申请实施例提供的数据处理方法的交互示意图。在图5所示的实施例中,仍然以所述待转储的数据为图片、所述数据库为分布式缓存,所述数据存储服务器为CDN为例进行说明。
如图5所示,该方法包括以下操作:
S501,网页爬取服务器将爬取得到的网页信息发送给数据处理服务器。
S502,数据处理服务器从所述网页信息中获取网页包含的文字内容以及网页包含的图片对应的URL,并根据图片的URL和目标尺寸,得到图片对应的索引标记。
S503,数据处理服务器将文字内容发送到内容提供服务器进行保存。
S504,查询分布式缓存中是否保存有与所述索引标记对应的图片元信息。
如果所述分布式缓存中包含对应的value值,则执行步骤S510;如果不包含,则执行步骤S505。
S505,数据处理服务器查询本地磁盘中是否保存有对应的图片。
如果有,则执行S507,否则,执行S506。
S506,数据处理服务器根据所述URL下载图片。
S507,数据处理服务器根据目标尺寸对所述图片进行裁减压缩,得到目标图片。
S508,数据处理服务器将目标图片上传CDN。
S509,数据处理服务器将图片的元信息保存到分布式缓存。
S510,数据处理服务器将图片的元信息保存到内容提供服务器。
S511,终端设备向内容服务器发送页面访问请求。
S512,内容提供服务器根据所述页面访问请求,从CDN中拉取对应的图片。
S513,内容提供服务器将拉取的图片和自身保存的文字内容提供给终端设备进行展示。
上述过程中,各个步骤的具体操作可以参见前面的方法实施例,在此不再赘述。
以上对本申请实施例提供的数据处理方法进行了说明。
下面结合附图对本申请实施例提供的数据处理装置进行说明。
图6为本申请一些实施例提供的数据处理装置的一种结构示意图。如图6所示,该装置600包括:
确定模块602,用于确定待转储的数据对应的索引标记;
第一查询模块604,用于查询数据库中是否保存有与所述索引标记对应的元信息;
转储模块606,用于如果所述数据库中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存,其中,所述内容提供服务器用于响应于页面访问请求,根据所述元信息从数据存储服务器获取所述数据。
在一些实施例中,当所述待转储的数据为图片时,所述确定模块602进一步用于:
根据所述待转储的图片的统一资源定位符URL和目标尺寸,确定所述图片对应的索引标记。
在一些实施例中,所述确定模块604进一步用于:
根据散列算法,将所述统一资源定位符URL转换为字符串;
根据所述内容提供服务器的展示需要,确定所述目标尺寸;
将所述字符串和所述目标尺寸结合在一起,得到所述图片对应的索引标记。
在一些实施例中,所述装置进一步包括:第二查询模块608,用于:
如果所述数据库中不包含所述索引标记对应的元信息,查询本地磁盘中是否包含以所述字符串为文件名的本地图片;
所述转储模块606进一步用于:
如果本地磁盘中包含所述本地图片,对所述本地磁盘中的本地图片进行处理,得到所述待转储的图片;将所述待转储的图片上传到所述数据存储服务器;将所述待转储的图片的元信息以及所述索引标记关联存储到所述数据库。
在一些实施例中,所述装置进一步包括:下载模块610,用于:
如果本地磁盘中不包含以所述字符串为文件名的本地图片,
根据所述图片的统一资源定位符URL下载该图片;
所述转储模块606进一步用于:
根据所述目标尺寸对所述下载的图片进行处理,得到所述待转储的图片。
在一些实施例中,所述确定模块602进一步用于:
接收网页爬取服务器爬取的网页的超文本标记语言HTML文本;
从所述HTML文本中,获取所述图片的统一资源定位符URL。
在一些实施例中,所述转储模块606进一步用于:
从所述HTML文本中,获取所述网页包含的文字内容;
将所述文字内容发送给所述内容提供服务器,使得所述内容提供服务器将所述文字内容与所述图片元信息对应保存。
在本申请一些实施例中,所述数据库为分布式缓存,所述元信息以JSON格式保存在所述分布式缓存中。
在一些实施例中,所述元信息包括以下一个或者多个:
图片类型、图片大小、宽度、高度、在所述数据存储服务器中的地址链接、所述统一资源定位符URL、所述元信息存储到数据库的时间。
图7是本申请一些实施例中数据处理装置的另一结构示意图。该数据处理装置700可以是图1B示出的数据处理服务器114,也可以是集成于数据处理服务器114中的一个组件。
如图7所示,数据处理装置700包括一个或者多个处理器(CPU)702、网络接口704、存储器706、以及用于互联这些组件的通信总线708。
在一些实施例中,所述网络接口704用于实现所述数据处理装置700与外部设备之间的网络连接,例如接收网页爬取服务器爬取的网页信息,查询数据库、向数据存储服务器上传数据等。
所述数据处理装置700还可以进一步包含一个或多个输出设备712(例如一个或多个可视化显示器),和/或包括一个或多个输入设备714(例如键盘,鼠标,或其他输入控件等)。
存储器706可以是高速随机存取存储器,诸如DRAM、SRAM、DDRRAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器706包括:
操作系统716,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
数据处理应用718,用于确定待转储的数据对应的索引标记;查询数据库中是否保存有与所述索引标记对应的元信息;如果所述数据库中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存,其中,所述内容提供服务器用于响应于页面访问请求,根据所述元信息从数据存储服务器获取所述数据。
在本申请一些实施例中,当所述待转储的数据为图片时,所述确定待转储的图片对应的索引标记包括:
根据所述待转储的图片的统一资源定位符URL和目标尺寸,确定所述图片对应的索引标记。
在本申请一些实施例中,所述根据待转储的图片的统一资源定位符URL和目标尺寸,确定所述图片对应的索引标记包括:
根据散列算法,将所述统一资源定位符URL转换为字符串;
根据所述内容提供服务器的展示需要,确定所述目标尺寸;
将所述字符串和所述目标尺寸结合在一起,得到所述图片对应的索引标记。
在本申请一些实施例中,所述数据处理应用718进一步用于:
如果所述数据库中不包含所述索引标记对应的元信息,查询本地磁盘中是否包含以所述字符串为文件名的本地图片;
如果本地磁盘中包含所述本地图片,对所述本地磁盘中的本地图片进行处理,得到所述待转储的图片;将所述待转储的图片上传到所述数据存储服务器;将所述待转储的图片的元信息以及所述索引标记关联存储到所述数据库。
在本申请一些实施例中,所述数据处理应用718进一步用于:
如果本地磁盘中不包含以所述字符串为文件名的本地图片,
根据所述图片的统一资源定位符URL下载该图片;
根据所述目标尺寸对所述下载的图片进行处理,得到所述待转储的图片。
在本申请一些实施例中,所述数据处理应用718进一步用于:
接收网页爬取服务器爬取的网页的超文本标记语言HTML文本;
从所述HTML文本中,获取所述图片的统一资源定位符URL。
在本申请一些实施例中,所述数据处理应用718进一步用于:
从所述HTML文本中,获取所述网页包含的文字内容;
将所述文字内容发送给所述内容提供服务器,使得所述内容提供服务器将所述文字内容与所述图片元信息对应保存。
在本申请一些实施例中,所述数据库为分布式缓存,所述元信息以JSON格式保存在所述分布式缓存中。
在本申请一些实施例中,所述元信息包括以下一个或者多个:
图片类型、图片大小、宽度、高度、在所述数据存储服务器中的地址链接、所述统一资源定位符URL、所述元信息存储到数据库的时间。
在本申请实施例提供的技术方案中,如果待转储的图片的索引标记命中数据库,就会跳过后续的处理步骤,这样可以跳过耗时最长的下载过程,节省了数据处理服务器大量的处理资源,而且也节省了数据存储服务器的存储资源。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种数据处理方法,其特征在于,包括:
将待转储的图片的统一资源定位符URL转换为字符串;根据页面展示需要,为所述图片确定多个目标尺寸;分别将所述字符串和每个目标尺寸结合在一起,得到所述图片对应的多个索引标记;
针对每个索引标记,执行如下处理:
查询分布式缓存中是否保存有与所述索引标记对应的元信息;
如果所述分布式缓存中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存;
如果所述分布式缓存中不包含所述索引标记对应的元信息,则查询本地磁盘中是否包含以所述字符串为文件名的本地图片;如果查询到所述本地图片,根据所述索引标记对应的目标尺寸对所述本地图片进行裁减压缩,得到目标图片,将所述目标图片上传给内容分发网络。
2.根据权利要求1所述的方法,其特征在于,所述分别将所述字符串和每个目标尺寸结合在一起,得到所述图片对应的多个索引标记包括:
分别将每个目标尺寸附加在所述字符串之后,得到所述多个索引标记。
3.根据权利要求1所述的方法,其特征在于,所述将待转储的图片的统一资源定位符URL转换为字符串包括:
根据散列算法,将所述统一资源定位符URL转换为所述字符串。
4.根据权利要求1所述的方法,其特征在于,进一步包括:
如果所述分布式缓存中不包含所述索引标记对应的元信息,将所述目标图片的元信息以及所述索引标记关联存储到所述分布式缓存。
5.根据权利要求1所述的方法,其特征在于,进一步包括:
如果本地磁盘中不包含以所述字符串为文件名的本地图片,根据所述图片的统一资源定位符URL下载该图片;
根据所述索引标记对应的目标尺寸对所下载的图片进行处理,得到所述目标图片。
6.根据权利要求2所述的方法,其特征在于,进一步包括:
接收网页爬取服务器爬取的网页的超文本标记语言HTML文本;
从所述HTML文本中,获取所述图片的统一资源定位符URL。
7.根据权利要求6所述的方法,进一步包括:
从所述HTML文本中,获取所述网页包含的文字内容;
将所述文字内容发送给所述内容提供服务器,使得所述内容提供服务器将所述文字内容与所述元信息对应保存。
8.根据权利要求1所述的方法,其中,所述元信息以JS对象简谱JSON格式保存在所述分布式缓存中。
9.根据权利要求1所述的方法,其中,所述元信息包括以下一个或者多个:
图片类型、图片大小、宽度、高度、在数据存储服务器中的地址链接、所述统一资源定位符URL、所述元信息存储到分布式缓存的时间。
10.一种数据处理装置,其特征在于,包括:
确定模块,用于将待转储的图片的统一资源定位符URL转换为字符串;根据页面展示需要,为所述图片确定多个目标尺寸;分别将所述字符串和每个目标尺寸结合在一起,得到所述图片对应的多个索引标记;
第一查询模块,用于针对每个索引标记,查询分布式缓存中是否保存有与所述索引标记对应的元信息;
转储模块,用于针对每个索引标记,如果所述分布式缓存中包含所述索引标记对应的元信息,则将所述元信息发送给内容提供服务器进行保存;
第二查询模块,用于针对每个索引标记,如果所述分布式缓存中不包含所述索引标记对应的元信息,则查询本地磁盘中是否包含以所述字符串为文件名的本地图片;
其中,所述转储模块进一步用于,如果所述第二查询模块查询到所述本地图片,根据所述索引标记对应的目标尺寸对所述本地图片进行裁减压缩,得到目标图片,将所述目标图片上传给内容分发网络。
11.根据权利要求10所述的装置,其特征在于,所述确定模块用于:
分别将每个目标尺寸附加在所述字符串之后,得到所述多个索引标记。
12.根据权利要求10所述的装置,其特征在于,所述确定模块用于:
根据散列算法,将所述统一资源定位符URL转换为所述字符串。
13.根据权利要求10所述的装置,其特征在于,所述第二查询模块进一步用于:如果所述分布式缓存中不包含所述索引标记对应的元信息,将所述目标图片的元信息以及所述索引标记关联存储到所述分布式缓存。
14.根据权利要求10所述的装置,其特征在于,进一步包括:下载模块,用于:如果本地磁盘中不包含以所述字符串为文件名的本地图片,根据所述图片的统一资源定位符URL下载该图片;
所述转储模块进一步用于:根据所述索引标记对应的目标尺寸对所下载的图片进行处理,得到所述目标图片。
15.一种非易失性计算机可读存储介质,其中所述存储介质中存储有机器可读指令,所述机器可读指令由处理器执行时,实现如权利要求1-9中任一项所述的方法。
16.一种服务器,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916338.XA CN109284428B (zh) | 2018-08-13 | 2018-08-13 | 数据处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916338.XA CN109284428B (zh) | 2018-08-13 | 2018-08-13 | 数据处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284428A CN109284428A (zh) | 2019-01-29 |
CN109284428B true CN109284428B (zh) | 2021-10-01 |
Family
ID=65183270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810916338.XA Active CN109284428B (zh) | 2018-08-13 | 2018-08-13 | 数据处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284428B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209672A (zh) * | 2019-05-20 | 2019-09-06 | 中国银行股份有限公司 | 冠字号码数据处理方法、装置、计算机设备及存储介质 |
CN111241313A (zh) * | 2020-01-06 | 2020-06-05 | 郑红 | 支持图像录入的检索方法和装置 |
CN113382180B (zh) * | 2021-06-01 | 2023-02-28 | 海南车智易通信息技术有限公司 | 一种图片处理的方法、计算设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018020291A1 (en) * | 2016-07-25 | 2018-02-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Content delivery network (cdn) for uploading, caching and delivering user content |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2742059C (en) * | 2010-06-22 | 2019-10-29 | Blaze Software Inc. | Method and system for automated analysis and transformation of web pages |
CN103336671B (zh) * | 2013-06-17 | 2016-07-13 | 北京奇虎科技有限公司 | 从网络中获取数据的方法和设备 |
CN105530297B (zh) * | 2015-12-11 | 2019-03-08 | 北京奇虎科技有限公司 | 一种网页资源包上传方法和装置 |
-
2018
- 2018-08-13 CN CN201810916338.XA patent/CN109284428B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018020291A1 (en) * | 2016-07-25 | 2018-02-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Content delivery network (cdn) for uploading, caching and delivering user content |
Also Published As
Publication number | Publication date |
---|---|
CN109284428A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10289659B2 (en) | Delivery and display of page previews using shadow DOM | |
CN106575298B (zh) | 包含动态内容和陈旧内容的网站的快速呈现 | |
CN110096660B (zh) | 用于加载页面图片的方法、装置和电子设备 | |
CN102985921B (zh) | 在具有电子资源数据库的客户端装置中高速缓存电子文档资源 | |
JP4812747B2 (ja) | 情報を取り込み抽出する方法及びシステム | |
KR101584828B1 (ko) | 웹-기반 다중사용자 협업 | |
US9077681B2 (en) | Page loading optimization using page-maintained cache | |
US20100268694A1 (en) | System and method for sharing web applications | |
US20080032739A1 (en) | Management of digital media using portable wireless devices in a client-server network | |
CN109284428B (zh) | 数据处理方法、装置及存储介质 | |
US20130103740A1 (en) | Method of tracking offline user interaction in a rendered document on a mobile device | |
JP2000194612A (ja) | 電子デ―タの内容を無線装置用に変換する方法およびシステム | |
JP2016035764A (ja) | ウェブページのネストしたフラグメントキャッシングを処理する方法および装置 | |
US8994748B2 (en) | Anchors for displaying image sprites, sub-regions and 3D images | |
US20160182606A1 (en) | Network Based Static Font Subset Management | |
JP2017194988A (ja) | 構造化文書のページレットのキャッシング | |
US9727643B2 (en) | Managing loading of web pages | |
US20230325460A1 (en) | Methods of website generation | |
CN106713460B (zh) | 一种flash应用的版本控制方法和系统 | |
US8595308B1 (en) | System, method, and computer program product for server side processing in a mobile device environment | |
CN106372109A (zh) | 互联网资源文件缓存方法及装置 | |
CN110955855A (zh) | 一种信息拦截的方法、装置及终端 | |
US20090132493A1 (en) | Method for retrieving and editing HTML documents | |
US20050028079A1 (en) | Image distribution in data processing systems | |
US20150089559A1 (en) | Method and system for managing display of web-based content on portable communication devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |