[发明专利]一种图片抓取的方法和系统有效
申请号: | 201310632698.4 | 申请日: | 2013-11-29 |
公开(公告)号: | CN103645939B | 公开(公告)日: | 2018-03-27 |
发明(设计)人: | 杨涛;吕本伟;卢永菁 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京润泽恒知识产权代理有限公司11319 | 代理人: | 兰淑铎 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 图片 抓取 方法 系统 | ||
技术领域
本发明涉及图片抓取技术,具体涉及一种图片抓取的方法和系统。
背景技术
图片抓取是指在互联网上快速搜索并批量下载图片。现有技术提供的一种图片抓取方法,可以分析出网页中的链接网址信息,根据链接网址信息通过多进程、多线程并发抓取技术,到相应的网页下载图片,把所有相关联的网页图片都批量下载到计算机或其它存储设备中。
在日常生活中,图片抓取技术被越来越广泛的应用。例如:一些电商网站、团购网站、图片网站等很多小型网站,由于受到自身网站服务器性能、网站软件配置等限制,这些小型网站上的图片在展现时速度较慢,而且展现过程也不稳定,这时可以通过图片抓取技术将这些小型网站上的图片抓取到一个大型的服务器上,通过所述大型的服务器来解决图片展现速度慢、展现不稳定的问题。又例如:一些图片搜索网站或新闻网站等,通过图片抓取技术来抓取整个互联网上的大部分图片,然后对抓取得到的图片进行分析、过滤,最后进行信息的发布。
然而,在实际应用中,现有的图片抓取技术也存在许多问题。网络上每天的信息量是非常大的,服务器每天需要抓取的图片数量数以亿计,现有的图片抓取技术,采用的是多进程、多线程并发抓取,而多进程、多线程并发抓取当接收到一个图片抓取请求就生成一个进程,对内存和CPU(Central Processing Unit,中央处理器)调度资源的消耗很大,内存和CPU能支持的进程数量是有限的,因此也就限制了服务器在同一时刻可以处理的图片抓取任务的数量,图片抓取效率低。进而,当图片抓取任务数量一定时,由于受到服务器在同一时刻可以处理的图片抓取任务的数量的限制,完成所有图片抓取任务需要消耗大量时间,耗时久,不能满足数以亿计的图片抓取任务需求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种图片抓取的方法和相应的一种图片抓取的系统。
依据本发明的一个方面,提供了一种图片抓取的方法,包括:
图片抓取服务器接收图片抓取任务,启动所述图片抓取服务器中的图片抓取主进程;其中,所述图片抓取任务中包括待抓取图片的链接地址;
通过所述主进程将所述图片抓取任务分发至所述主进程下、满足预置抓取条件的子进程;
通过所述子进程根据所述待抓取图片的链接地址,进行所述待抓取图片的异步抓取。
可选地,所述通过所述主进程将所述图片抓取任务分发至所述主进程下、满足预置抓取条件的子进程,包括:
通过所述主进程监听所有子进程中的图片抓取任务数量;
通过所述主进程将所述图片抓取任务分发至所述主进程下、图片抓取任务数量小于第一设定阈值的子进程。
可选地,所述通过所述主进程将所述图片抓取任务分发至所述主进程下、满足预置抓取条件的子进程,还包括:
当所述主进程下的所有子进程中的图片抓取任务数量均大于或等于所述第一设定阈值时,通过所述主进程新建一个子进程,并将所述图片抓取任务分发至所述新建的子进程。
可选地,在所述图片抓取服务器接收图片抓取任务步骤之前,所述方法还包括:
图片数据接口持续接收图片抓取请求,根据所述图片抓取请求生成图片抓取任务;
将所述图片抓取任务保存在任务队列中;
任务分发器按设定规则从所述任务队列中提取所述图片抓取任务,并将提取得到的图片抓取任务分发至所述图片抓取服务器。
可选地,所述任务分发器按设定规则从所述任务队列中提取所述图片抓取任务,并将提取得到的图片抓取任务分发至所述图片抓取服务器,包括:
根据所述图片抓取任务,调整与所述图片抓取任务相匹配的图片抓取服务器的数量;
任务分发器按设定规则从所述任务队列中提取所述图片抓取任务,并从一个或多个所述图片抓取服务器中确定一个图片抓取服务器,将提取得到的图片抓取任务分发至所述确定的图片抓取服务器。
可选地,在所述通过所述子进程根据所述待抓取图片的链接地址,进行所述待抓取图片的异步抓取步骤之后,所述方法还包括:
将所述异步抓取的结果信息返回至所述主进程。
可选地,在所述将所述异步抓取的结果信息返回至所述主进程步骤之后,所述方法还包括:
当所述结果信息为图片抓取成功时,保存抓取得到的图片,并将抓取成功结果返回至所述图片数据接口;
当所述结果信息为图片抓取失败时,重复所述通过所述子进程根据所述待抓取图片的链接地址,进行所述待抓取图片的异步抓取的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310632698.4/2.html,转载请声明来源钻瓜专利网。