[发明专利]控制网络爬虫的任务分配方法和装置有效
申请号: | 201610243866.4 | 申请日: | 2016-04-18 |
公开(公告)号: | CN107305548B | 公开(公告)日: | 2020-02-28 |
发明(设计)人: | 杨杰 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F16/951 | 分类号: | G06F16/951 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 韩建伟;张永明 |
地址: | 100083 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控制 网络 爬虫 任务 分配 方法 装置 | ||
本申请公开了一种控制网络爬虫的任务分配方法和装置。其中,网络爬虫采用多线程执行任务,多线程预先存放于线程池内,该方法包括:通过信号量判断多线程中的任务线程的数量是否达到任务最大并行数,其中,信号量的初始值为任务最大并行数,任务线程为经过信号量的线程;在通过信号量判断出多线程中的任务线程的数量达到任务最大并行数时,阻止线程池内的线程从URL队列中获取任务;以及在通过信号量判断出多线程中的任务线程的数量未达到任务最大并行数时,控制线程池内的线程从URL队列中获取任务。本申请解决了相关技术中通过中间控制器分配网络爬虫任务导致爬虫系统变得较为复杂的技术问题。
技术领域
本申请涉及互联网领域,具体而言,涉及一种控制网络爬虫的任务分配方法和装置。
背景技术
网络爬虫爬取网页时会从一个或若干初始网页的统一资源定位符(UniformResource Locator,简称为URL)开始,抽取初始网页上的所有URL,并放入URL队列,等待网络爬虫从URL队列获取一个新的URL继续执行网页爬取。现有方法是通过中间控制器来给网络爬虫分配任务,所以网络爬虫任务的分配非常依赖于中间控制器,当中间控制器出现异常情况时会导致网络爬虫分配不到任务或者分配过多任务,如果网络爬虫分配不到任务就会一直处于空闲状态,浪费机器资源;如果网络爬虫同时执行过多的任务则会导致网络爬虫崩溃,造成任务和数据的丢失,带来较为严重的后果。
具体地,现有通过中间控制器分配网络爬虫任务的方法存在如下缺点:首先,需要另写一个中间控制器程序分配网络爬虫的爬取任务,使得整个爬虫系统变得复杂,不易维护;其次,网络爬虫任务的分配非常依赖中间控制器程序,当中间控制器程序出现异常崩溃时,会存在数据丢失或是浪费机器资源的问题。
针对相关技术中通过中间控制器分配网络爬虫任务导致爬虫系统变得较为复杂的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种控制网络爬虫的任务分配方法和装置,以解决相关技术中通过中间控制器分配网络爬虫任务导致爬虫系统变得较为复杂的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种控制网络爬虫的任务分配方法。网络爬虫采用多线程执行任务,多线程预先存放于线程池内,该方法包括:通过信号量判断多线程中的任务线程的数量是否达到任务最大并行数,其中,信号量的初始值为任务最大并行数,任务线程为经过信号量的线程;在通过信号量判断出多线程中的任务线程的数量达到任务最大并行数时,阻止线程池内的线程从URL队列中获取任务;以及在通过信号量判断出多线程中的任务线程的数量未达到任务最大并行数时,控制线程池内的线程从URL队列中获取任务。
进一步地,通过信号量判断多线程中的任务线程的数量是否达到任务最大并行数包括:判断信号量的值是否为0;在判断出信号量的值为0时,则确定多线程中的任务线程的数量达到任务最大并行数;以及在判断出信号量的值不为0时,则确定多线程中的任务线程的数量未达到任务最大并行数。
进一步地,在通过信号量判断出多线程中的任务线程的数量未达到任务最大并行数时,控制线程池内的线程从URL队列中获取任务之后,该方法还包括:将信号量的值减1,在任务线程的任务执行完成或取消时,方法还包括:将信号量的值加1。
进一步地,在通过信号量判断出多线程中的任务线程的数量达到任务最大并行数时,阻止线程池内的线程从URL队列中获取任务之后,该方法还包括:控制线程池内的线程进入等待状态。
进一步地,在通过信号量判断多线程中的任务线程的数量是否达到任务最大并行数之前,该方法还包括:在网络爬虫启动时,从数据库中读取任务最大并行数,其中,数据库中预先存储有任务最大并行数;以及将任务最大并行数赋值给信号量,并作为信号量的初始值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610243866.4/2.html,转载请声明来源钻瓜专利网。