CN102594787B - 数据抓取方法、系统和路由服务器 - Google Patents

数据抓取方法、系统和路由服务器 Download PDF

Info

Publication number
CN102594787B
CN102594787B CN201110021719.XA CN201110021719A CN102594787B CN 102594787 B CN102594787 B CN 102594787B CN 201110021719 A CN201110021719 A CN 201110021719A CN 102594787 B CN102594787 B CN 102594787B
Authority
CN
China
Prior art keywords
operator
routing
data
crawl
corresponding relation
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
Application number
CN201110021719.XA
Other languages
English (en)
Other versions
CN102594787A (zh
Inventor
阮曙东
张开翔
曾鹏云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110021719.XA priority Critical patent/CN102594787B/zh
Publication of CN102594787A publication Critical patent/CN102594787A/zh
Application granted granted Critical
Publication of CN102594787B publication Critical patent/CN102594787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了数据抓取方法、系统和路由服务器。其中,该方法包括:A,路由服务器接收到客户端发送的查询请求后,根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端;B,所述客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据。采用本发明,能够普提高数据抓取速度和稳定性。

Description

数据抓取方法、系统和路由服务器
技术领域
本发明涉及计算机技术领域,特别涉及数据抓取方法、系统和路由服务器。
背景技术
目前,针对每一服务,都将实现该服务的服务器部署于同一机房,其中,该机房仅对应一个运营商,即该机房中所有服务器都处于同一个运营商中。如此,当该服务需要获取目标网站的数据时,直接利用该机房中的服务器抓取相应的数据,并提供给该服务即可。
但是,当目标网站与抓取数据的服务器处于不同的运营商时,比如,目标网站处于电信运营商,而抓取数据的服务器处于移动运营商,由于不同运营商网络之间结构复杂,出口速度限制等问题,将会降低数据抓取速度和稳定性。
发明内容
本发明提供了数据抓取方法、系统和路由服务器,以便提高数据抓取速度和稳定性。
本发明提供的技术方案包括:
一种数据抓取方法,包括:
A,路由服务器接收到客户端发送的查询请求后,根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端;
B,所述客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据。
一种应用于数据抓取的路由服务器,包括:
接收单元,用于接收客户端发送的查询请求;
确定单元,用于根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端,以使所述客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据。
一种数据抓取系统,该系统包括:客户端、抓取服务器和如上所述的路由服务器。
由以上技术方案可以看出,本发明相比于现有技术,充分考虑外部网站的网络部署进行多机房部署,即设置一个服务对应多个不同运营商,如此,在路由服务器接收到客户端发送的查询请求后,并非像现有技术那样单一地确定一个运营商中的抓取服务器,而是根据已设置的存储空间中的路由表查询到用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端,这显然不会出现现有技术中目标服务器和抓取服务器处于不同运营商网络所出现的问题,提高了数据抓取速度和稳定性。
附图说明
图1为本发明实施例提供的基本流程图;
图2为本发明实施例提供的详细流程图;
图3为本发明实施例提供的组网示意图;
图4为本发明实施例提供的操作流程图;
图5为本发明实施例提供的系统结构图;
图6为本发明实施例提供的路由服务器的实现结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
参见图1,图1为本发明实施例提供的基本流程图。如图1所示,该方法包括:
步骤101,路由服务器接收到客户端发送的查询请求后,根据已设置的存储空间中的路由表查询到用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端。
本步骤101的具体描述可参见图2所示的步骤201至步骤204。
步骤102,客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据。
至此,完成图1所示的流程。
作为本发明实施例的具体实现形式,下面对图1所示流程涉及的各个实体进行描述:
路由服务器:
该路由服务器其用于抓取路由,其具体可为深圳腾讯公司开发的为抓取多机房部署提供的路由服务器CrawlerRouterServer,该CrawlerRouterServer用于接收客户端发送的查询请求,并实现路由策略,即确定用于抓取数据的路由信息。
抓取服务器:
该抓取服务器用于抓取网页中的数据,比如网页数据或者图片数据等,其具体实现时为深圳腾讯公司开发的抓取数据的服务系统即CrawlerServer,具有以下功能:
(1),其作为标准的http/https客户端,用于连接外部网站,发出GET/POST请求,获取网页中数据;
(2),其支持根据301/302跳转,跳转后的地址在Http头部用CurUrl字段标识;
(3),其支持网页文本编码自动判断;
(4),其分别部署在各个运营商比如电信运营商、移动运营商、联通运营商、教育网运营商等对应的机房,其可具体命名为:Crawler[运营商]Server。以电信运营商为例,则电信运营商中的抓取服务器为如CrawlerTelServer。
客户端:
该客户端为共内部系统调用的客户端,其封装了不同运营商对应的机房的智能调用服务逻辑。在具体实现时,该客户端可为深圳腾讯公司开发的CrawlerSmartClient,其具有以下功能:
(1),其对内部系统提供load接口,传入URL,HttpMethod,HttpRequestHeader,PageEncoding等字段给路由服务器,并返回抓取的数据给内部系统;
(2),其向路由服务器比如CrawlerRouterServer发送查询请求,以便路由服务器比如CrawlerRouterServer接收到查询请求后查询路由信息;
(3),其在本地使用共享内存缓存路由信息,其在获知内部系统需要获取数据之后,且在发送查询请求之前从自身缓存的路由信息中查找对应的路由信息,当查找到对应的路由信息时,可直接利用该路由信息,即不再发送查询请求,当查找不到对应的路由信息时,再发送查询请求,这显然能够提高效率。其中,该缓存的路由信息可采用哈希(hash)表管理,并支持缓存超时淘汰。
基于上面描述,下面对图1所示的流程进行详述。
参见图2,图2为本发明实施例提供的详细流程图。本实施例中,该流程以应用于图3所示的组网为例,如图2所示,该流程可包括以下步骤:
步骤201,如果内部系统在运行过程中需要获取网页中数据,则通过调用CrawlerSmartClient提供的load接口通知给CrawlerSmartClient。
本实施例中,内部系统具体实现时可为排版系统、图片压缩系统和Javascript引擎等,本发明实施例并不具体限定。
需要说明的是,本步骤201中,所述告知中携带了所述数据所处的域名。
步骤202,CrawlerSmartClient判断自身缓存的哈希表中是否存在用于抓取所述数据的路由信息,所述路由信息具体可为运营商的标识,如果否,则执行步骤203;否则,执行步骤206。
本实施例中,CrawlerSmartClient在本地使用共享内存缓存用于管理路由信息的哈希表,以便在内部系统需要获取数据时,先从共享内存的哈希表中查找路由信息,提高效率。其中,本步骤202中,CrawlerSmartClient缓存的哈希表中包含了域名与运营商标识之间的对应关系。其中,每一域名对应的运营商标识具体为用于抓取该域名上数据的抓取服务器所处的运营商的标识。基于此,本步骤202中的判断具体为:CrawlerSmartClient以所述域名为关键字在自身缓存的哈希表中查找是否包含该关键字的对应关系,如果查找到,将该查找到的任一对应关系中的运营商标识确定为所述路由信息,即CrawlerSmartClient缓存的哈希表中存在用于抓取所述数据的路由信息;否则,CrawlerSmartClient缓存的哈希表中不存在用于抓取所述数据的路由信息。
需要说明的是,哈希表中的对应关系遵守被缓存超时即淘汰的原则。
步骤203,CrawlerSmartClient发送查询请求给CrawlerRouterServer。
所述查询请求携带了所述域名。
步骤204,CrawlerRouterServer接收到查询请求后,根据已设置的存储空间中的路由表确定用于抓取所述数据的路由信息,所述路由信息为用于抓取所述数据的抓取服务器所处的运营商的标识,并将确定的运营商标识发送给CrawlerSmartClient。
本步骤204的确定操作具体在下文描述,这里暂不赘述。
步骤205,CrawlerSmartClient接收该确定的运营商标识,并将该运营商标识以及所述域名之间的对应关系存储在自身所缓存的哈希表中。之后执行步骤206。
步骤205中的对应关系遵守被缓存超时即淘汰的机制,比如,设定一时间,如果该对应关系在该哈希表中存储的时间达到该设定的时间,则即删除该对应关系。
步骤206,CrawlerSmartClient向该运营商标识对应的运营商中的抓取服务器发送抓取请求。
需要说明的是,由于CrawlerSmartClient封装了不同运营商对应的机房的智能调用服务逻辑,因此,其很容易确定出需要向该运营商标识对应的运营商中的哪一个抓取服务器发送抓取请求。
还需要说明的是,本步骤206中,CrawlerSmartClient可通过taf框架对CrawlerRouterServer发起抓取请求。该Taf框架为深圳腾讯公司开发的应用服务框架,这里不再详细赘述。
步骤207,抓取服务器接收到抓取请求后,按照http或者https与所述数据所处域名对应的网站进行通信来抓取该网站上的所述数据。
步骤208,抓取服务器在成功完成数据抓取后,上报抓取结果给CrawlerRouterServer。
本步骤208中的抓取结果包含:抓取服务器所在运营商的标识、抓取服务器对数据进行抓取时的抓取速度和该被抓取的数据所处的域名。
需要说明的是,如果抓取服务器抓取数据失败,其也需要上报抓取结果,其中,该抓取结果包含的抓取速度为0。
而如果抓取服务器成功抓取数据,则本步骤208中抓取速度与抓取该数据所用的时间以及被抓取的数据大小决定,具体为:
如果被抓取的数据的大小小于或等于1024字节,则当该数据的抓取时间小于或等于30ms时,确定该数据的抓取速度为1024k/s,当该数据的抓取时间大于30ms、且小于100ms时,确定该数据的抓取速度为128k/s,当该数据的抓取时间大于100ms、且小于800ms时,确定该数据的抓取速度为50k/s;
如果被抓取的数据的大小大于1024字节,则判断该数据的大小与该数据的抓取时间的商是否大于10240k/s,如果大于,则直接确定该数据的抓取速度为10240k/s,如果小于或等于,则直接确定该数据的抓取速度为该数据的大小与该数据的抓取时间的商,单位为k/s。
步骤209,CrawlerRouterServer接收到抓取结果后,记录该抓取结果。
本实施例中,CrawlerRouterServer会暂时记录每一运营商中抓取服务器针对每一域名上数据抓取所发送的抓取结果,其中,记录的抓取结果数量有限,比如,可限制为10个。以运营商为电信网、域名为baidu为例,则本实施例中,CrawlerRouterServer会记录电信网中抓取服务器完成抓取baidu上的数据之后所发送的抓取结果,该抓取结果存储的数量为10个,当超过10个时,按照时间先后顺序依次更新之前记录的对应关系,比如,CrawlerRouterServer接收到第11个抓取结果时,则更新第一个接收的抓取结果为当前接收的第11个抓取结果,依次类推。
步骤210,CrawlerRouterServer判断当前存在的包含所述运营商标识和所述域名的抓取结果的数量是否大于1,如果大于1,则执行步骤211,如果等于1,则执行步骤212。
由于在步骤209中已经记录了步骤208发送的包含所述运营商标识和所述域名的抓取结果,因此,执行到本步骤210时,当前存在的包含所述运营商标识和所述域名的抓取结果至少为1。
步骤211,对该存在的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行运算,得到运营商抓取速度,记录该运营商标识、域名和所述运营商抓取速度之间的对应关系至设定的关系表。之后执行步骤213。
本步骤211中的运算为简单的平均值运算,或者为加权运算。其中,如果为加权运算时,抓取速度的权重为该抓取速度在该所有抓取结果包含的所有抓取速度中出现的次数。
步骤212,将该抓取结果中的抓取速度作为运营商抓取速度,记录该运营商标识、域名和抓运营商抓取之间的对应关系至所述关系表。之后执行步骤213。
步骤213,以所述域名为关键字在所述关系表中查找包含该关键字的对应关系,如果查找到,则从查找到的所有对应关系中选择出包含取值最大的运营商抓取速度的对应关系,将该对应关系写入至所述存储空间的路由表中。
如此,后续在接收到查询请求时,即可利用该路由表中的对应关系确定用于抓取数据的路由信息,具体在下文描述。
至此,完成图2所示的流程。
在上述流程中,步骤204的确定操作具体可包括:所述CrawlerRouterServer在人工参与路由信息确定时,将人工选取的路由信息确定为用于抓取所述数据的路由信息;在人工未参与路由信息确定时,根据设置的路由策略从所述存储空间的路由表中确定用于抓取所述数据的路由信息。
其中,人工选取路由信息的实现可通过抓取路由器web控制系统(CrawlerRouterWebAdmin)实现,具体为:该CrawlerRouterWebAdmin通过CrawlerRouterServer接口调用和直接访问存储空间中的路由表,对该路由表进行查询,修改,删除和统计分析,以找出最有效的用于抓取所述数据的路由信息。
其中,根据设置的路由策略从所述存储空间的路由表中确定用于抓取所述数据的路由信息在具体实现时可参见图4所示的流程。
参见图4,图4为本发明实施例提供的操作流程图。本流程中,上述存储空间可包括:缓存空间和数据库。其中,该缓存空间具体实现时可为CrawlerRouterCache,其采用分布式Cache来缓存路由表。数据库具体实现时可为CrawlerRouterDB,其为关系型数据库,用于永久存储路由表。基于该描述,可以知道,上述步骤204或者步骤213中存储空间的路由表实质为:缓存空间比如CrawlerRouterCache上的路由表和数据库CrawlerRouterDB中的路由表。为便于描述,本流程将缓存空间比如CrawlerRouterCache上的路由表记为第一路由表,而将数据库CrawlerRouterDB中的路由表记为第二路由表。其中,第一路由表中的对应关系遵守超时即被淘汰原则
基于此,图4所示的流程可包括:
步骤401,CrawlerRouterServer先以所述域名为关键字从CrawlerRouterCache的第一路由表中查找包含了该关键字的对应关系,如果查找到,则执行步骤402;如果未查找到,执行步骤403。
步骤402,CrawlerRouterServer将该查找到的对应关系中的运营商标识确定为所述路由信息。结束当前流程。
步骤403,CrawlerRouterServer继续以所述域名为关键字在CrawlerRouterDB的第二路由表中查找包含了该关键字的对应关系,如果查找到,则执行步骤402,如果未查找到,则执行步骤404。
步骤404,判断所述域名是否以edu结尾,如果是,执行步骤405;否则,执行步骤406。
步骤405,确定教育网的标识为所述路由信息。结束当前流程。
步骤406,默认电信网的标识为所述路由信息。结束当前流程。
至此,完成图4所示的流程。
在上述流程中,步骤402具体实现时可包括:
如果该查找到的对应关系均包含相同的运营商标识,则当该查找到的对应关系中的运营商标识仅表示电信网时,判断该查找到的每一对应关系中的运营商抓取速度是否小于或等于第一阈值,如果是,随机选择除电信网之外的任一运营商的标识确定为所述路由信息,比如选择教育网或者移动等运营商,否则,确定该查找到的对应关系中的运营商标识为所述路由信息。
如果该查找到的对应关系中包含了不同的运营商标识,则,
当该不同运营商标识的个数为第一设定数量N1或第二设定数量N2,则判断该N1或N2个不同运营商标识所对应的运营商抓取速度是否均低于第二阈值,如果是,随机选取除该N1或N2个不同运营商标识之外的任一运营商标识为所述路由信息,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。以N1为2,N2为3不同运营商标识为电信网标识、移动网标识和/或教育网标识为例,则,判断电信网标识、移动网标识和/或教育网标识对应的运营商抓取速度是否均低于第二阈值,如果是,随机选取除电信网标识、移动网标识和/或教育网标识之外的其他运营商标识为所述路由信息,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。
当该不同运营商标识的个数为第三设定数量N3时,则判断该N3个不同运营商标识所对应的运营商抓取速度是否均低于第三阈值,如果是,按比例分配所述路由信息至该N3个不同运营商标识,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。以N3为4,该不同运营商标识分别为电信网标识、移动网标识、教育网标识和联通网标识为例,则判断该4个不同运营商标识所对应的运营商抓取速度是否均低于第三阈值,如果是,则50%走电信,20%走联通,20%走移动,10%走教育网(该比例可根据实际情况配置);否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。
需要说明的时,上述第一阈值、第二阈值和第三阈值大小无关,可以相等,也可以不等。
至此,完成了本发明实施例提供的方法的描述。
下面对本发明实施例提供的系统和路由服务器进行描述。
参见图5,图5为本发明实施例提供的系统结构图。如图5所示,该系统可包括:客户端、抓取服务器和路由服务器;其中,
客户端,用于发送查询请求,并在接收到路由服务器发送的路由信息时,所述路由信息包含运营商的标识,向所述路由信息中运营商标识对应的运营商中的抓取服务器发送抓取请求。
抓取服务器,处于所述运营商标识对应的运营商中,用于接收到抓取请求后抓取所述数据。
路由服务器,用于接收到客户端发送的查询请求后,根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,并发送至客户端。
本实施例中,路由服务器具体实现时可有多种实现形式,图6示出了其中一种实现形式。
参见图6,图6为本发明实施例提供的路由服务器的实现结构图。如图6所示,该路由服务器可包括:
接收单元601,用于接收客户端发送的查询请求;
确定单元602,用于根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端,以使所述客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据。
优选地,如图6所示,该路由服务器进一步包括:存储单元603和第一判断单元604。
其中,接收单元601还用于接收抓取服务器上报的抓取结果,并将该抓取结果存储至存储单元603存储;
第一判断单元604用于判断存储单元603当前是否还存储了包含其他运营商标识和所述域名的抓取结果,如果是,从该存在的抓取结果和所述接收单元当前接收的抓取结果中选择出包含取值最大的抓取速度的抓取结果,将该抓取结果包含的运营商标识、抓取速度和域名写入至所述存储空间的路由表中。
优选地,如图6所示,该路由服务器还包括:第二判断单元605。
其中,第二判断单元605用于判断存储单元603当前存储的包含所述运营商标识和所述域名的抓取结果的数量是否大于1,如果大于1,对该存储的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行运算,得到运营商抓取速度,记录该运营商标识、域名和所述运营商抓取速度之间的对应关系至设定的关系表,如果等于1,将该抓取结果中的抓取速度作为运营商抓取速度,记录该运营商标识、域名和抓运营商抓取之间的对应关系至所述关系表;
基于此,第一判断单元604执行的上述操作具体为:以所述域名为关键字从所述关系表中查找包含所述关键字的对应关系,如果查找到,则从查找到的所有对应关系中选择出包含取值最大的运营商抓取速度的对应关系,将该对应关系写入至所述存储空间的路由表中。
本实施例中,确定单元602在人工参与路由信息确定时,将人工选取的路由信息确定为用于抓取所述数据的路由信息;在人工未参与路由信息确定时,根据设置的路由策略从所述存储空间的路由表中确定用于抓取所述数据的路由信息。
其中,确定单元602可包含查找子单元6021、第一确定子单元6022和第二确定子单元6023。
其中,查找子单元6021,用于以所述数据所处的域名为关键字在所述存储空间的路由表中查找包含了该关键字的对应关系;
第一确定子单元6022,用于在查找子单元6021查找到包含了该关键字的对应关系时,将该查找到的对应关系中的运营商标识确定为所述路由信息,结束当前流程;
第二确定子单元6023,用于在查找子单元6021未查找到包含了该关键字的对应关系时,判断所述数据所处的域名是否以edu结尾,如果是,确定教育网的标识为所述路由信息,否则,默认电信网的标识为所述路由信息,结束当前流程。
优选地,第一确定子单元6022将该查找到的对应关系中的运营商标识确定为所述路由信息包括:
在查找到的对应关系均包含相同的运营商标识时,如果该查找到的对应关系中的运营商标识仅表示电信网,则判断该查找到的每一对应关系中的运营商抓取速度是否小于或等于第一阈值,如果是,随机选择除电信网之外的任一运营商的标识确定为所述路由信息,否则,确定该查找到的对应关系中的运营商标识为所述路由信息;
在该查找到的对应关系中包含了不同的运营商标识时,如果该不同运营商标识的个数为第一设定数量N1或第二设定数量N2,则判断该N1或N2个不同运营商标识所对应的运营商抓取速度是否均低于第二阈值,如果是,随机选取除该N1或N2个不同运营商标识之外的任一运营商标识为所述路由信息,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息;如果该不同运营商标识的个数为第三设定数量N3,则判断该N3个不同运营商标识所对应的运营商抓取速度是否均低于第三阈值,如果是,按比例分配所述路由信息至该N3个不同运营商标识,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。
以上对本发明实施例提供的装置进行了描述。
由以上技术方案可以看出,本发明相比于现有技术,充分考虑外部网站的网络部署进行多机房部署,即设置一个服务对应多个不同运营商,如此,在路由服务器接收到客户端发送的查询请求后,并非像现有技术那样单一地确定一个运营商中的抓取服务器,而是根据已设置的存储空间中的路由表查询到用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端,这显然不会出现现有技术中目标服务器和抓取服务器处于不同运营商网络所出现的问题,提高了数据抓取速度和稳定性;
进一步地,本发明中,在抓取服务器抓取数据后,还上报运营商标识和抓取速度,以便路由服务器后续在确定运营商时,确定出抓取速度最快的运营商,这相比于现有技术,能够加快数据抓取速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (18)

1.一种数据抓取方法,其特征在于,该方法包括:
A,路由服务器接收到客户端发送的查询请求后,根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端;
B,所述客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据;
C,抓取服务器抓取数据之后,上报抓取结果至所述路由服务器,所述抓取结果包含所述运营商标识、数据的抓取速度和数据所处的域名;
D,所述路由服务器接收并存储所述抓取结果;
E,所述路由服务器判断当前是否还存在包含其他运营商标识和所述域名的抓取结果,如果是,从该存在的抓取结果和步骤D接收的抓取结果中选择出包含取值最大的抓取速度的抓取结果,将该抓取结果包含的运营商标识、抓取速度和域名写入至所述存储空间的路由表中。
2.根据权利要求1所述的方法,其特征在于,所述抓取速度由所述数据的抓取时间以及所述数据的大小决定。
3.根据权利要求2所述的方法,其特征在于,如果所述数据的大小小于或等于1024字节,则当该数据的抓取时间小于或等于30ms时,确定该数据的抓取速度为1024k/s,当该数据的抓取时间大于30ms、且小于100ms时,确定该数据的抓取速度为128k/s,当该数据的抓取时间大于100ms、且小于800ms时,确定该数据的抓取速度为50k/s;
如果被抓取的数据的大小大于1024字节,则判断该数据的大小与该数据的抓取时间的商是否大于10240k/s,如果大于,则直接确定该数据的抓取速度为10240k/s,如果小于或等于,则直接确定该数据的抓取速度为该数据的大小与该数据的抓取时间的商,单位为k/s。
4.根据权利要求1所述的方法,其特征在于,在步骤D和步骤E之间进一步包括:
判断当前存在的包含所述运营商标识和所述域名的抓取结果的数量是否大于1,如果大于1,对该存在的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行运算,得到运营商抓取速度,记录该运营商标识、域名和所述运营商抓取速度之间的对应关系至设定的关系表,如果等于1,将该抓取结果中的抓取速度作为运营商抓取速度,记录该运营商标识、域名和抓运营商抓取之间的对应关系至所述关系表;
步骤E包括:以所述域名为关键字从所述关系表中查找包含所述关键字的对应关系,如果查找到,则从查找到的所有对应关系中选择出包含取值最大的运营商抓取速度的对应关系,将该对应关系写入至所述存储空间的路由表中。
5.根据权利要求4所述的方法,其特征在于,所述对该存在的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行运算包括:
对该存在的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行平均值运算;或者,
对该存在的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行加权运算,其中,每一抓取速度的权重由该抓取速度在所述所有抓取结果包含的所有抓取速度中出现的次数。
6.根据权利要求1至5任一所述的方法,其特征在于,步骤A中,路由服务器根据已设置的存储空间中的路由表查询到用于抓取数据的路由信息包括:
所述路由服务器在人工参与路由信息确定时,将人工选取的路由信息确定为用于抓取所述数据的路由信息;在人工未参与路由信息确定时,根据设置的路由策略从所述存储空间的路由表中确定用于抓取所述数据的路由信息。
7.根据权利要求6所述的方法,其特征在于,所述根据设置的路由策略从所述存储空间的路由表中确定用于抓取所述数据的路由信息包括:
A1,以所述数据所处的域名为关键字在所述存储空间的路由表中查找包含了该关键字的对应关系,如果查找到,执行步骤A2;如果未查找到,则执行步骤A3;
A2,将该查找到的对应关系中的运营商标识确定为所述路由信息,结束当前流程;
A3,判断所述数据所处的域名是否以edu结尾,如果是,确定教育网的标识为所述路由信息,否则,默认电信网的标识为所述路由信息,结束当前流程。
8.根据权利要求7所述的方法,其特征在于,所述存储空间包含缓存空间和数据库;所述存储空间的路由表包括:缓存空间上的第一路由表和数据库上的第二路由表,所述第一路由表的对应关系遵守被缓存超时即淘汰的原则;
步骤A1中,以所述数据所处的域名为关键字在所述存储空间的路由表中查找包含了该关键字的对应关系包括:
路由服务器先以所述数据所处的域名为关键字在所述第一路由表中查找包含了该关键字的对应关系,如果查找到,则执行步骤A2;如果未查找到,则继续以所述数据所处的域名为关键字在所述第二路由表中查找包含了该关键字的对应关系,如果查找到,则执行步骤A2,如果未查找到,则执行步骤A3。
9.根据权利要求7所述的方法,其特征在于,如果该查找到的对应关系均包含相同的运营商标识,则步骤A2包括:
如果该查找到的对应关系中的运营商标识仅表示电信网,则判断该查找到的每一对应关系中的运营商抓取速度是否小于或等于第一阈值,如果是,随机选择除电信网之外的任一运营商的标识确定为所述路由信息,否则,确定该查找到的对应关系中的运营商标识为所述路由信息。
10.根据权利要求7所述的方法,其特征在于,如果该查找到的对应关系中包含了不同的运营商标识,则步骤A2包括:
如果该不同运营商标识的个数为第一设定数量N1或第二设定数量N2,则判断该N1或N2个不同运营商标识所对应的运营商抓取速度是否均低于第二阈值,如果是,随机选取除该N1或N2个不同运营商标识之外的任一运营商标识为所述路由信息,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息;
如果该不同运营商标识的个数为第三设定数量N3,则判断该N3个不同运营商标识所对应的运营商抓取速度是否均低于第三阈值,如果是,按比例分配所述路由信息至该N3个不同运营商标识,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。
11.根据权利要求1所述的方法,其特征在于,步骤A中,客户端发送的查询请求包括:
内部系统在运行过程中如果需要获取数据,则通过调用所述客户端提供的load接口通知给客户端;
客户端在接收到所述通知后,发送查询请求至路由服务器。
12.根据权利要求1或11所述的方法,其特征在于,步骤A中,客户端发送查询请求至路由服务器包括:
客户端确定内部系统需要获取的数据所处的域名;
客户端以该确定的域名为关键字,从已缓存的域名与运营商标识之间的对应关系中查找包含了该关键字的对应关系,如果未查找到,继续执行发送查询请求给路由服务器的操作;如果查找到,则将该查找到的一对应关系中的运营商标识确定为所述路由信息,之后执行步骤B;
步骤B中,客户端在接收到路由服务器发送的路由信息后,进一步缓存该路由信息中运营商标识和所述数据所处的域名之间的对应关系。
13.一种应用于数据抓取的路由服务器,其特征在于,该路由服务器包括:
接收单元,用于接收客户端发送的查询请求;以及接收抓取服务器上报的抓取结果,并将该抓取结果存储至存储单元存储;所述抓取结果包含运营商标识、数据的抓取速度和数据所处的域名;
确定单元,用于根据已设置的存储空间中的路由表确定用于抓取数据的路由信息,所述路由信息包含运营商的标识,并发送至客户端,以使所述客户端向该运营商标识对应的运营商中的抓取服务器发送抓取请求,由该抓取服务器接收到抓取请求后抓取所述数据;
第一判断单元,用于判断所述存储单元当前是否还存储了包含其他运营商标识和所述域名的抓取结果,如果是,从所述存储单元存储的包含其他运营商标识和所述域名的抓取结果和所述接收单元当前接收的抓取结果中选择出包含取值最大的抓取速度的抓取结果,将该抓取结果包含的运营商标识、抓取速度和域名写入至所述存储空间的路由表中。
14.根据权利要求13所述的路由服务器,其特征在于,该路由服务器还包括:第二判断单元;
所述第二判断单元用于判断所述存储单元当前存储的包含所述运营商标识和所述域名的抓取结果的数量是否大于1,如果大于1,对该存储的包含所述运营商标识和所述域名的所有抓取结果中的抓取速度进行运算,得到运营商抓取速度,记录该运营商标识、域名和所述运营商抓取速度之间的对应关系至设定的关系表,如果等于1,将该抓取结果中的抓取速度作为运营商抓取速度,记录该运营商标识、域名和抓运营商抓取之间的对应关系至所述关系表;
所述第一判断单元以所述域名为关键字从所述关系表中查找包含所述关键字的对应关系,如果查找到,则从查找到的所有对应关系中选择出包含取值最大的运营商抓取速度的对应关系,将该对应关系写入至所述存储空间的路由表中。
15.根据权利要求14所述的路由服务器,其特征在于,所述确定单元在人工参与路由信息确定时,将人工选取的路由信息确定为用于抓取所述数据的路由信息;在人工未参与路由信息确定时,根据设置的路由策略从所述存储空间的路由表中确定用于抓取所述数据的路由信息。
16.根据权利要求15所述的路由服务器,其特征在于,所述确定单元包括:
查找子单元,用于以所述数据所处的域名为关键字在所述存储空间的路由表中查找包含了该关键字的对应关系;
第一确定子单元,用于在所述查找子单元查找到包含了该关键字的对应关系时,将该查找到的对应关系中的运营商标识确定为所述路由信息,结束当前流程;
第二确定子单元,用于在所述查找子单元未查找到包含了该关键字的对应关系时,判断所述数据所处的域名是否以edu结尾,如果是,确定教育网的标识为所述路由信息,否则,默认电信网的标识为所述路由信息,结束当前流程。
17.根据权利要求16所述的路由服务器,其特征在于,所述第一确定子单元在查找到的对应关系均包含相同的运营商标识时,如果该查找到的对应关系中的运营商标识仅表示电信网,则判断该查找到的每一对应关系中的运营商抓取速度是否小于或等于第一阈值,如果是,随机选择除电信网之外的任一运营商的标识确定为所述路由信息,否则,确定该查找到的对应关系中的运营商标识为所述路由信息;
在该查找到的对应关系中包含了不同的运营商标识时,如果该不同运营商标识的个数为第一设定数量N1或第二设定数量N2,则判断该N1或N2个不同运营商标识所对应的运营商抓取速度是否均低于第二阈值,如果是,随机选取除该N1或N2个不同运营商标识之外的任一运营商标识为所述路由信息,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息;如果该不同运营商标识的个数为第三设定数量N3,则判断该N3个不同运营商标识所对应的运营商抓取速度是否均低于第三阈值,如果是,按比例分配所述路由信息至该N3个不同运营商标识,否则,将取值最大的运营商抓取速度对应的运营商标识确定为所述路由信息。
18.一种数据抓取系统,其特征在于,该系统包括:客户端、抓取服务器和如权利要求13至17任一所述的路由服务器。
CN201110021719.XA 2011-01-14 2011-01-14 数据抓取方法、系统和路由服务器 Active CN102594787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110021719.XA CN102594787B (zh) 2011-01-14 2011-01-14 数据抓取方法、系统和路由服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110021719.XA CN102594787B (zh) 2011-01-14 2011-01-14 数据抓取方法、系统和路由服务器

Publications (2)

Publication Number Publication Date
CN102594787A CN102594787A (zh) 2012-07-18
CN102594787B true CN102594787B (zh) 2016-01-20

Family

ID=46482995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110021719.XA Active CN102594787B (zh) 2011-01-14 2011-01-14 数据抓取方法、系统和路由服务器

Country Status (1)

Country Link
CN (1) CN102594787B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184704A (zh) * 2015-08-31 2015-12-23 佛山市恒南微科技有限公司 一种实现区域企业商标信息摸底与管理的系统
CN106484310B (zh) * 2015-08-31 2020-01-10 华为数字技术(成都)有限公司 一种存储阵列操作方法和装置
CN107846437B (zh) * 2016-09-20 2021-11-02 北京京东尚科信息技术有限公司 选择流量出口机房的方法、系统和装置
CN116760830B (zh) * 2023-08-14 2024-03-01 腾讯科技(深圳)有限公司 路由信息的处理方法、装置、计算机可读介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1882934A (zh) * 2003-11-14 2006-12-20 移动365 提供可配置的动态多媒体消息服务预代码转换的系统和方法
CN101178736A (zh) * 2007-12-11 2008-05-14 腾讯科技(深圳)有限公司 网页抓取方法和网页抓取服务器
CN101453731A (zh) * 2008-12-31 2009-06-10 华为技术有限公司 实现号码携带的方法、信令转接功能装置及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832052B2 (en) * 2008-06-16 2014-09-09 Cisco Technologies, Inc. Seeding search engine crawlers using intercepted network traffic
US10754896B2 (en) * 2009-03-24 2020-08-25 Micro Focus Llc Transforming a description of services for web services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1882934A (zh) * 2003-11-14 2006-12-20 移动365 提供可配置的动态多媒体消息服务预代码转换的系统和方法
CN101178736A (zh) * 2007-12-11 2008-05-14 腾讯科技(深圳)有限公司 网页抓取方法和网页抓取服务器
CN101453731A (zh) * 2008-12-31 2009-06-10 华为技术有限公司 实现号码携带的方法、信令转接功能装置及系统

Also Published As

Publication number Publication date
CN102594787A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN110324177B (zh) 一种微服务架构下的服务请求处理方法、系统及介质
CN103051740B (zh) 域名解析方法、dns服务器及域名解析系统
CN104219316A (zh) 一种分布式系统中的调用请求处理方法及装置
CN102594787B (zh) 数据抓取方法、系统和路由服务器
CN103634315A (zh) 域名服务器的前端控制方法及系统
CN104572777B (zh) 基于UIWebView组件的网页加载方法及装置
CN101662483A (zh) 云计算网络的缓存系统及其方法
CN105279163A (zh) 一种缓存数据的更新及存储方法及其系统
CN106921703B (zh) 跨境数据同步的方法、系统,以及境内和境外数据中心
CN102946320B (zh) 一种分布式用户行为日志预测网络监管方法及系统
CN107809383A (zh) 一种基于mvc的路径映射方法及装置
CN104410700A (zh) 下发骚扰电话列表的方法、骚扰电话拦截方法及系统
CN102737119A (zh) 统一资源定位符的查找方法、过滤方法和相关设备及系统
US20160034505A1 (en) Systems and methods for large-scale link analysis
CN104253836B (zh) 基于无线网络的图片显示方法、移动终端和系统
CN108984433B (zh) 缓存数据控制方法及设备
JP2018537777A (ja) モノのインターネット情報システム
CN109120885A (zh) 视频数据获取方法及装置
JP2012512471A (ja) データノード装置、ピア情報取得方法およびシステム
CN101296237B (zh) 资源批量处理系统和方法
CN102209020B (zh) 一种业务路由方法及其装置和系统
WO2020238567A1 (zh) 一种资源检测方法及装置
CN101540969A (zh) 号码携带在短消息系统中的实现方法和装置
CN109699043A (zh) 链路建立方法和装置
CN102970391B (zh) 域名查询处理方法、服务器及系统

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