[发明专利]一种并行的垂直交叉网络数据采集方法及系统有效
| 申请号: | 201310146080.7 | 申请日: | 2013-04-24 |
| 公开(公告)号: | CN103258017A | 公开(公告)日: | 2013-08-21 |
| 发明(设计)人: | 敖翔;何清;庄福振 | 申请(专利权)人: | 中国科学院计算技术研究所 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
| 地址: | 100190 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 并行 垂直 交叉 网络 数据 采集 方法 系统 | ||
技术领域
本发明涉及互联网领域,尤其涉及一种并行的垂直交叉网络数据采集方法及系统。
背景技术
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。
设计网络爬虫时通常考虑四种策略的组合:
选择策略:决定所要下载的页面;
重新访问策略:决定什么时候检查页面的更新变化;
平衡礼貌策略:怎样避免站点超载;
并行策略:怎么协同达到分布式抓取的效果。
网页抓取的选择策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入问题,目前常见的是广度优先和最佳优先方法。
广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索,其流程如图10所示。该算法的设计和实现相对简单,且能覆盖尽可能多的网页。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。
网页抓取的重新访问策略,主要使用系统定时任务完成,使用单独的线程或者进程对已下载的网页进行监控一旦到达检查时机便开始扫描所有已经下载网页判断哪些网页需要重新下载。
爬虫相比于人,可以有更快的检索速度和更深的层次,所以他们可能使一个站点瘫痪。此外,一个服务器也会很难响应多线程爬虫的请求。爬虫的使用对一般的网站,可能要付出代价。
网页抓取的并行策略,以往主要采用多线程技术实现多主体并行下载。
由于网络爬虫设计策略中的并行策略,现有的爬虫技术大部分是基于单机或多机多线程实现网页的并行采集。
多线程技术在爬虫中的使用可以提高资源使用效率从而提高整个系统的执行效率,但同时也会出现一些问题。例如,当系统使用大量线程时,因为操作系统需要不停地在线程之间切换,反而会降低程序执行效率,使程序运行时间增加;更多的线程需要更多的内容空间以支持程序运行,因为除共享资源外,每一个线程还拥有各自的独占资源;多线程由于共享资源从而容易产生线程死锁等。针对这些多线程技术的不足,本发明设计了全新的基于Hadoop的并行爬虫。该发明在爬取技术上没有使用多线程爬取技术,因此避免了多线程技术的各种局限和不稳定。具体地,该发明利用Hadoop自身的并行机制,在map阶段将种子URL列表中的URL分发到不同节点,在多个节点上完成网页爬取;然后,将每一个网页获取的相关URL列表在reduce阶段进行整合,返回给主控节点进行下一次分发。
此外,已有的普通垂直网页爬虫针对的采集目标只能是领域内的对象(例如,一个特定企业、一只特定股票等),而本发明设计的爬虫系统针对的采集目标既可以是对象,也可以是对象的属性(例如,一只股票的涨跌、走势变化等),实现了垂直基础上的交叉的采集模型。
但是现有技术使用爬虫的代价及问题仍然存在,如:
网络资源:在很长一段时间,爬虫使用相当的带宽高度并行地工作。
服务器超载:尤其是对给定服务器的访问过高时。
质量糟糕的爬虫,可能使服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页面。
个人爬虫,如果过多的人使用,可能是网络或者服务器阻塞。
而以对象为采集目标的不足主要表现在,采集的网页层次结构过于单一,不便于后续进行数据分析和处理;以多线程为采集手段的缺陷主要表现在,当线程量过大时,调度代价、资源占用代价等都会随之增大,同时存在较高的线程死锁风险。
发明内容
为解决现有的网络爬虫以对象为采集目标,以多线程技术为采集手段所带来的不足与缺陷,本发明提供一种并行的垂直交叉网络数据采集方法及系统,避掉了多线程技术的一些潜在风险和代价,降低了多线程并行采集的潜在风险与代价,可以实现海量数据更稳定、更高效的并行采集,对目标网页实现了粗聚类,便于后续的分析和处理操作,并提高了数据读取和查询的效率。
为实现上述发明目的,本发明提供一种并行的垂直交叉网络数据采集方法,该方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310146080.7/2.html,转载请声明来源钻瓜专利网。





