一种网页的并发抓取方法和系统的制作方法
【技术领域】
[0001]本申请涉及网络技术领域,特别是涉及一种网页的并发抓取方法和系统。
【背景技术】
[0002]搜索引擎,是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。对于所述搜索引擎从互联网上搜集信息的过程,依赖于网络爬虫对相关网站信息的爬取。
[0003]所述网络爬虫,是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。
[0004]在现有技术中,对于普通的搜索引擎,传统爬虫从一个或若干初始网页的URL (统一资源定位符,Uniform Resource Locator)开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新URL放入队列,直到满足系统的一定停止条件。
[0005]目前现有技术中网络爬虫对网页内容的分析能力较差,只能通过机械式的不断抓取网站信息,经常并发几十个或上百个请求循环重复抓取;由于大部分的网站处理能力有限,故大量的并发请求很容易导致网站响应变慢甚至崩溃。
【发明内容】
[0006]本申请所要解决的技术问题是提供一种网页的并发抓取方法和系统,能够提高网页的并发抓取过程中网站的响应速度。
[0007]为了解决上述问题,本申请公开了一种网页的并发抓取方法,包括:
[0008]对待处理抓取请求进行并发处理,并监听所处理抓取请求对应的处理事件消息;
[0009]依据所述处理事件消息分析得到当前的抓取指标参数;
[0010]在当前的抓取指标参数超出预设的安全范围时,调低网页并发抓取的并发数。
[0011]优选的,所述方法还包括:
[0012]在当前的抓取指标参数低于预设的安全范围时,调高网页并发抓取的并发数。
[0013]优选的,所述依据所述处理事件消息分析得到当前的抓取指标参数的步骤,包括:
[0014]获取各时间段内所处理抓取请求对应的处理事件消息;
[0015]对当前时间段内所处理抓取请求对应的处理事件消息进行单独分析,和/或,对相邻时间段内所处理抓取请求对应的处理事件消息进行对比分析,得到当前的抓取指标参数。
[0016]优选的,在所述对待处理抓取请求进行并发处理的步骤之前,所述方法还包括:
[0017]在当前实际的每秒处理事务数TPS未超出最高安全上限TPS时,准许待处理抓取请求的处理;
[0018]则所述对待处理抓取请求进行并发处理的步骤具体为,对所准许的待处理抓取请求进行并发处理。
[0019]优选的,所述抓取指标参数包括网站响应指标参数和网络状况参数中的一项或多项。
[0020]优选的,所述网站响应指标参数包括响应时间参数和响应比例参数中的一项或多项;
[0021 ] 其中,所述响应时间参数用于表示网站对所处理抓取请求的响应时间,所述响应比例参数用于表示各时间段内响应时间符合预设的安全范围的所处理抓取请求在相应时间段内全部所处理抓取请求中的比重。
[0022]优选的,所述网站爬虫间网络状况参数包括错误数量参数、错误比例参数、抓取速度参数、抓取速度比例参数中的一项或多项;
[0023]其中,所述错误数量参数用于表示发生异常错误的所处理抓取请求的数量,所述错误比例参数用于表示当前时间段内的错误数量参数相对于上一时间段内的错误数量参数的增加比例,所述抓取速度比例参数用于小于等于当前抓取速度参数的比例。
[0024]优选的,所述在当前的抓取指标参数超出预设的安全范围时,调低网页并发抓取的并发数的步骤,包括:
[0025]调低并发抓取处理的并发线程数,和/或,调低并发抓取处理的TPS。
[0026]优选的,所述调低并发抓取处理的TPS的步骤,包括:
[0027]依据最高安全上限TPS与当前TPS的差值进行并发抓取处理的TPS的调低;其中,所述最高安全上限TPS用于表示抓取指标参数未超出预设的安全范围情况下的历史最高TPS。
[0028]优选的,在所述对待处理抓取请求进行并发处理的步骤之前,所述方法还包括如下获取所述最高安全上限TPS的步骤:
[0029]设置所述安全上限TPS的初始值为预置的大数值;
[0030]逐步增加并发抓取处理的并发线程数直到所述并发线程数到达最大并发线程数;
[0031]依据当前安全上限TPS进行待处理抓取请求的并发处理;
[0032]在当前的抓取指标参数未超出预设的安全范围时,调高当前安全上限TPS ;
[0033]在当前的抓取指标参数超出预设的安全范围时,调低当前安全上限TPS ;
[0034]记录调高或调低后的安全上限TPS ;
[0035]选取所记录的安全上限TPS中的最高TPS作为最高安全上限TPS。
[0036]另一方面,本申请还公开了一种网页的并发抓取系统,包括:
[0037]请求处理模块,用于对待处理抓取请求进行并发处理;
[0038]消息监听模块,用于监听所处理抓取请求对应的处理事件消息;
[0039]消息分析模块,用于依据所述处理事件消息分析得到当前的抓取指标参数;及
[0040]并发数调低模块,用于在当前的抓取指标参数超出预设的安全范围时,调低网页并发抓取的并发数。
[0041]优选的,所述系统还包括:
[0042]并发数调高模块,用于在当前的抓取指标参数低于预设的安全范围时,调低网页并发抓取的并发数。
[0043]优选的,所述消息分析模块包括:
[0044]消息获取子模块,用于获取各时间段内所处理抓取请求对应的处理事件消息;
[0045]消息分析子模块,用于对当前时间段内所处理抓取请求对应的处理事件消息进行单独分析,和/或,对相邻时间段内所处理抓取请求对应的处理事件消息进行对比分析,得到当前的抓取指标参数。
[0046]优选的,所述系统还包括:
[0047]准许模块,用于在所述对待处理抓取请求进行并发处理的操作之前,在当前实际的每秒处理事务数TPS未超出最高安全上限TPS时,准许待处理抓取请求的处理;
[0048]则所述请求处理模块,具体用于对所准许的待处理抓取请求进行并发处理。
[0049]优选的,所述抓取指标参数包括网站响应指标参数和网络状况参数中的一项或多项。
[0050]优选的,所述网站响应指标参数包括响应时间参数和响应比例参数中的一项或多项;
[0051 ] 其中,所述响应时间参数用于表示网站对所处理抓取请求的响应时间,所述响应比例参数用于表示各时间段内响应时间符合预设的安全范围的所处理抓取请求在相应时间段内全部所处理抓取请求中的比重。
[0052]优选的,所述网站爬虫间网络状况参数包括错误数量参数、错误比例参数、抓取速度参数、抓取速度比例参数中的一项或多项;
[0053]其中,所述错误数量参数用于表示发生异常错误的所处理抓取请求的数量,所述错误比例参数用于表示当前时间段内的错误数量参数相对于上一时间段内的错误数量参数的增加比例,所述抓取速度比例参数用于小于等于当前抓取速度参数的比例。
[0054]优选的,所述并发数调低模块包括:
[0055]第一调低子模块,用于调低并发抓取处理的并发线程数;和/或
[0056]第二调低子模块,用于调低并发抓取处理的TPS。
[0057]优选的,所述第二调低子模块,具体用于依据最高安全上限TPS与当前TPS的差值进行并发抓取处理的TPS的调低;其中,所述最高安全上限TPS用于表示抓取指标参数未超出预设的安全范围情况下的历史最高TPS。
[0058]优选的,所述系统还包括:用于在所述对待处理抓取请求进行并发处理的操作之前,获取所述最高安全上限TPS的上限TPS获取模块;
[0059]所述上限TPS获取模块包括:
[0060]设置子模块,用于设置所述安全上限TPS的初始值为预置的大数值;
[0061]逐步增加子模块,用于逐步增加并发抓取处理的并发线程数直到所述并发线程数到达最大并发线程数;
[0062]并发处理子模块,用于依据当前安全上限TPS进行待处理抓取请求的并发处理;
[0063]调高子模块,用于在当前的抓取指标参数未超出预设的安全范围时,调高当前安全上限TPS ;
[0064]调低子模块,用于在当前的抓取指标参数超出预设的安全范围时,调低当前安全上限TPS ;
[0065]记录子模块,用于记录调高或调低后的安全上限TPS ;及
[0066]选取子模块,用于选取所记录的安全上限TPS中的最高TPS作为最高安全上限TPS。
[0067]与现有技术相比,本申请具有以下优点:
[0068]本申请在当前的抓取指标参数超出预设的安全范围时,调低网页并发抓取的并发数,其中,所述抓取指标参数用于衡量网页的并发抓取过程中网站负荷状态,由于调低网页并发抓取的并发数意味着调低抓取请求的数量也即调低请求网站的频率,其能够降低网页的并发抓取过程中网站服务器的负荷,故本申请能够通过调低网页并发抓取的并发数将抓取指标参数控制在预设的安全范围内,也即能够将网站负荷控制在预设的安全范围内,因此能够避免大量的并发请求容易导致网站响应变慢甚至崩溃的情况,从而能够提高网页的并发抓取过程中网站的响应速度;
[0069]其次,本申请还可以在当前的抓取指标参数低于预设的安全范围时,调高网页并发抓取的并发数,由于调高网页并发抓取的并发数意味着调高抓取请求的数量也即调高请求网站的频率,故本申请能够通过调高网页并发抓取的并发数使其抓取指标参数逼近但不超出预设的安全范围,例如,可以使抓取速度逼近一个理想的数值,因此,本申请能够同时保证网站的响应速度和爬虫的抓取速度;
当前第1页
1 
2 
3 
4