图片抓取方法和系统的制作方法_4

文档序号:9375687阅读:来源:国知局
任务服务器。
[0132]A6、根据A1-A5任一项所述的方法,还包括:
[0133]所述任务服务器对图片进行抓取之后,产生状态信息,所述任务服务器将状态信息返回至所述调度服务器;
[0134]所述调度服务器根据所述状态信息,执行预设的动作。
[0135]A7、根据A6所述的方法,所述调度服务器根据所述状态信息,执行预设的动作包括:
[0136]所述状态信息为抓取成功,所述调度服务器向请求方返回抓取成功的消息;
[0137]所述状态信息为抓取失败,所述调度服务器重新将对应的图片抓取任务放入任务总队列中。
[0138]AS、根据A7所述的方法,所述根据状态信息,执行预设的动作还包括:
[0139]统计抓取失败的次数,当所述抓取失败的次数小于预设阈值时,重复生成对应的图片抓取任务,否则,向请求方返回失败消息。
[0140]A9、根据A1-A8任一项所述的方法,所述任务服务器对图片进行抓取之后还包括:对抓取的图片进行处理;
[0141]消重存储器对多个任务服务器抓取和/或处理后的图片统一进行消重存储。
[0142]B10、一种图片抓取系统,包括调度服务器和多个任务服务器,其中,所述任务服务器包括:
[0143]数据接口,用于接收图片抓取请求;
[0144]任务模块,用于根据接收的图片抓取请求生成图片抓取任务,并存储所述图片抓取任务;
[0145]抓取模块,用于根据所述调度服务器分发的图片抓取任务,对图片进行抓取;
[0146]所述调度服务器包括:
[0147]队列模块,用于从所述多个任务服务器中获取图片抓取任务,将所述获取的图片抓取任务存储为任务总队列;
[0148]调度模块,用于按预设的规则从所述任务总队列中取出图片抓取任务,分发给所述多个任务服务器。
[0149]B11、根据BlO所述的系统,所述任务服务器还包括:过滤模块,用于对所述任务模块生成的图片抓取任务进行过滤,清除已完成任务和非法任务。
[0150]B12、根据BlO或Bll所述的系统,所述抓取模块进一步包括:
[0151]主进程单元,用于启动主进程,所述主进程将图片抓取任务进一步分发至主进程下的子进程;
[0152]子进程单元,用于通过子进程对每个图片抓取任务生成一个线程,利用所述线程对图片进行抓取。
[0153]B13、根据B12所述的系统,所述抓取模块进一步包括:判断单元和建立单元;
[0154]所述判断单元用于判断是否存在线程数小于预设最大线程数的子进程;
[0155]所述主进程单元具体用于:当存在线程数小于预设最大线程数的子进程时,将图片抓取任务分发给该线程数小于预设最大线程数的子进程;
[0156]所述判断单元进一步用于:当不存在线程数小于预设最大线程数的子进程时,判断子进程的数量是否小于最大子进程数;
[0157]所述建立单元用于当子进程的数量小于最大子进程数时,新建一个子进程;
[0158]所述主进程单元还用于:当子进程的数量小于最大子进程数时,将所述图片抓取任务分发至所述新建的子进程。
[0159]B14、根据B10-B13任一项所述的系统,所述调度模块具体用于:根据所述任务服务器的进程数、最大预设进程数、线程数以及最大预设线程数中的一项或多项得出所述任务服务器的空闲信息;以及,根据所述空闲信息,从所述任务总队列中取出图片抓取任务,分发给所述多个任务服务器。
[0160]B15、根据B10-B14任一项所述的系统,所述子进程单元进一步用于:在对图片进行抓取之后,产生状态信息,将状态信息返回至所述调度模块;
[0161]所述调度模块还用于:根据所述状态信息,执行预设的动作。
[0162]B16、根据B15所述的系统,所述调度模块具体用于:当所述状态信息为抓取成功时,向请求方返回抓取成功的消息;当所述状态信息为抓取失败时,重新将对应的图片抓取任务放入任务总队列中。
[0163]B17、根据B16所述的系统,所述调度模块进一步用于:
[0164]统计抓取失败的次数,当所述抓取失败的次数小于预设阈值时,重复生成对应的图片抓取任务,否则,向请求方返回失败消息。
[0165]B18、根据B10-B17任一项所述的系统,所述任务服务器还包括:
[0166]处理模块,用于对抓取的图片进行处理;
[0167]所述系统进一步包括:消重存储器,用于对所述抓取模块抓取的图片和/或所述处理模块处理后的图片进行消重存储。
【主权项】
1.一种图片抓取的方法,包括: 多个任务服务器的数据接口接收图片抓取请求; 所述多个任务服务器分别根据各自接收的图片抓取请求生成图片抓取任务,并存储所述图片抓取任务; 调度服务器从所述多个任务服务器中获取图片抓取任务,将所述获取的图片抓取任务存储为任务总队列; 调度服务器从所述任务总队列中取出图片抓取任务,按预设的规则分发给所述多个任务服务器; 所述多个任务服务器根据分发的图片抓取任务,对图片进行抓取。2.根据权利要求1所述的方法,在所述调度服务器从所述多个任务服务器中获取图片抓取任务,将所述获取的图片抓取任务存储为任务总队列之前,还包括:所述多个任务服务器对所述生成的图片抓取任务进行过滤,清除已完成任务和非法任务。3.根据权利要求1或2所述的方法,所述任务处理器根据分发的图片抓取任务,进行图片抓取具体包括: 启动主进程,所述主进程将图片抓取任务进一步分发至主进程下的子进程; 所述子进程对每个图片抓取任务生成一个线程,所述线程对图片进行抓取。4.根据权利要求3所述的方法,所述主进程将图片抓取任务进一步分发至主进程下的子进程具体包括: 判断是否存在线程数小于预设最大线程数的子进程; 若存在线程数小于预设最大线程数的子进程,则将图片抓取任务分发给该线程数小于预设最大线程数的子进程; 若不存在线程数小于预设最大线程数的子进程,则判断子进程的数量是否小于最大子进程数; 若子进程的数量小于最大子进程数,则新建一个子进程,将所述图片抓取任务分发至所述新建的子进程。5.根据权利要求1-4任一项所述的方法,所述调度服务器按预设的规则从所述任务总队列中取出图片抓取任务,分发给所述多个任务服务器具体包括: 根据所述任务服务器的进程数、最大预设进程数、线程数以及最大预设线程数中的一项或多项得出所述任务服务器的空闲信息; 根据所述空闲信息,从所述任务总队列中取出图片抓取任务,分发给所述多个任务服务器。6.根据权利要求1-5任一项所述的方法,还包括: 所述任务服务器对图片进行抓取之后,产生状态信息,所述任务服务器将状态信息返回至所述调度服务器; 所述调度服务器根据所述状态信息,执行预设的动作。7.根据权利要求6所述的方法,所述调度服务器根据所述状态信息,执行预设的动作包括: 所述状态信息为抓取成功,所述调度服务器向请求方返回抓取成功的消息; 所述状态信息为抓取失败,所述调度服务器重新将对应的图片抓取任务放入任务总队列中。8.根据权利要求7所述的方法,所述根据状态信息,执行预设的动作还包括: 统计抓取失败的次数,当所述抓取失败的次数小于预设阈值时,重复生成对应的图片抓取任务,否则,向请求方返回失败消息。9.根据权利要求1-8任一项所述的方法,所述任务服务器对图片进行抓取之后还包括:对抓取的图片进行处理; 消重存储器对多个任务服务器抓取和/或处理后的图片统一进行消重存储。10.一种图片抓取系统,包括调度服务器和多个任务服务器,其中,所述任务服务器包括: 数据接口,用于接收图片抓取请求; 任务模块,用于根据接收的图片抓取请求生成图片抓取任务,并存储所述图片抓取任务; 抓取模块,用于根据所述调度服务器分发的图片抓取任务,对图片进行抓取; 所述调度服务器包括: 队列模块,用于从所述多个任务服务器中获取图片抓取任务,将所述获取的图片抓取任务存储为任务总队列; 调度模块,用于按预设的规则从所述任务总队列中取出图片抓取任务,分发给所述多个任务服务器。
【专利摘要】本发明公开了一种图片抓取方法和系统,其中,方法包括:多个任务服务器的数据接口接收图片抓取请求;多个任务服务器分别根据各自接收的图片抓取请求生成图片抓取任务,并存储图片抓取任务;调度服务器从多个任务服务器中获取图片抓取任务,将获取的图片抓取任务存储为任务总队列;调度服务器按预设的规则从任务总队列中取出图片抓取任务,分发给多个任务服务器;多个任务服务器根据分发的图片抓取任务,对图片进行抓取。根据该方案,将不同任务服务器接收的图片抓取任务进行统一的调度,这能够均衡多个任务服务器上的抓取任务,充分利用了系统资源,避免了图片抓取任务搁置或延迟处理,提高了抓取效率,减少了等待时间。
【IPC分类】G06F17/30
【公开号】CN105095299
【申请号】CN201410209007
【发明人】杨涛, 吕本伟
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
【公开日】2015年11月25日
【申请日】2014年5月16日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1