[发明专利]面向软件项目的多源异构数据自动收集方法及系统有效
申请号: | 201710301051.1 | 申请日: | 2017-05-02 |
公开(公告)号: | CN107220297B | 公开(公告)日: | 2020-11-20 |
发明(设计)人: | 邹艳珍;倪际楠;曹英魁;谢冰;赵俊峰 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F16/951 | 分类号: | G06F16/951;G06F16/955;G06F9/48;G06F9/50 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 余功勋 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 软件 项目 多源异构 数据 自动 收集 方法 系统 | ||
本发明提供面向软件项目的多源异构数据自动收集方法及系统,该系统包括:多任务多线程爬取模块,用于对多个数据爬取任务进行统一的调度,并对不同类型的数据实现不同的爬取方法,以根据不同数据类型的数据入口地址自动调用不同的爬取方法对不同类型的数据爬取任务进行数据爬取;多源异构软件项目数据自动收集模块,用于根据用户输入的软件项目名称及URL自动化探测该软件项目数据的数据类型及其对应的数据入口地址,并根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,在所述多任务多线程爬取模块中调用不同的爬取方法对数据进行收集;数据解析存储模块,用于对上述收集的数据进行解析并存储到数据库中。
技术领域
本发明涉及信息收集技术领域,尤其涉及面向软件项目的多源异构数据自动收集方法及系统。
背景技术
现有的计算机软件研究中,主要是使用开源软件项目的相关数据,而这些开源软件数据主要是通过以下方法收集的:
一,对于不同项目不同类型的软件项目数据,分别编写爬取程序获取资源。软件研究人员需要人工确定数据在互联网上的地址以及数据源的获取接口,最后根据这些信息编写相对应的爬取程序将数据获取下来。
二,使用通用的网页爬虫框架进行数据抓取。互联网网页爬虫技术较为成熟。网页爬虫利用网页页面中的超链接收集并下载互联网站点中的网页文件。开源社区中有许多成熟的开源爬虫项目可供扩展和使用,如Apache开源社区下的Nutch项目等。
但是,上述开源软件项目相关的数据收集方法存在以下问题:
(1)对于第一种类型,扩展性差。研究人员需要对于不同数据源的数据类型编写不同的爬取程序。在已有的工作中也有解决数据收集问题可复用的通用方法。但是其中每个不同的爬取模块的入口依然需要研究人员人工查找,针对不同项目的相同类型数据依然需要人工手动提供接口。
(2)对于第二种类型,适用范围有限,通用的网络爬取程序只能收集网页或其他文本文件类型数据,其不适用于结构化的开源数据。而在软件项目数据收集的过程中,现有的爬虫框架无法满足开源软件项目数据结构和数据接口的多样性。
由于现有技术中并不存在一个同时解决已知数据类型和未知数据类型的针对多项目多类型的数据收集问题的自动化方法。因此,研究一种更好的面向软件项目的多源异构数据的数据自动收集方法十分必要。
发明内容
本发明的目的是提供面向软件项目的多源异构数据自动收集方法及系统,该方法及系统能够收集不同类型的数据,扩展性强,可适用范围广。
针对上述目的,本发明所采用的技术方案为:
面向软件项目的多源异构数据自动收集方法,其步骤包括:
1)根据用户输入的软件项目名称及URL,并利用通用的基于广度优先的网页爬虫方法,对与该软件项目相关的多个站点中的所有Web页面进行爬取;
2)当上述爬取的Web页面中的URL是已知的数据类型的数据入口地址时,根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,并调用对应的爬取方法进行数据爬取;其中所述调用对应的爬取方法进行数据爬取包括以下步骤:
2-1)对上述创建的多个数据爬取任务进行调度;
2-2)当系统资源足够时,对每个数据爬取任务分配系统资源,并构建存储目录;
2-3)爬取上述每个数据爬取任务中的URL目录,并将URL目录进行划分;
2-4)根据上述划分的URL目录创建多个子线程,并进行多线程数据爬取;
2-5)当上述所有子线程数据爬取结束后,释放系统资源;
3)对上述爬取的数据进行解析并存储到数据库中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710301051.1/2.html,转载请声明来源钻瓜专利网。