当前位置: 首页 > 专利查询>北京大学专利>正文

面向软件项目的多源异构数据自动收集方法及系统技术方案

技术编号:16327258 阅读:74 留言:0更新日期:2017-09-29 19:06
本发明专利技术提供面向软件项目的多源异构数据自动收集方法及系统,该系统包括:多任务多线程爬取模块,用于对多个数据爬取任务进行统一的调度,并对不同类型的数据实现不同的爬取方法,以根据不同数据类型的数据入口地址自动调用不同的爬取方法对不同类型的数据爬取任务进行数据爬取;多源异构软件项目数据自动收集模块,用于根据用户输入的软件项目名称及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)对上述爬取的数据进行解析并存储到数据库中。进一步地,步骤2)中判断上述爬取的Web页面中的URL是否是已知的数据类型的数据入口地址包括以下两个步骤:1)调用detect方法判断上述爬取的Web页面中的URL是否是已知的数据类型的资源页面对应的地址,若是则过滤掉以提高爬取效率,否则继续对该Web页面中的URL进行判断;2)调用detectEntry方法判断上述过滤后得到的Web页面中的URL是否是已知的数据类型的数据入口地址,若是则根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,否则继续利用上述通用的基于广度优先的网页爬虫方法进行爬取。进一步地,步骤2)中所述数据爬取任务包括软件项目相关信息以及需要爬取的数据类型;其中所述软件项目相关信息包括软件项目名称、软件项目爬取开始时间、软件项目URL。进一步地,步骤2-2)中所述存储目录包括存储文件目录和爬取任务记录;其中所述存储文件目录是指“软件项目名称/资源名称”形式的文件目录;所述爬取任务记录包括软件项目名称、数据类型、存储地址、任务状态。面向软件项目的多源异构数据自动收集系统,包括多任务多线程数据爬取模块、多源异构软件项目数据自动收集模块和数据解析存储模块;所述多任务多线程数据爬取模块用于对多个数据爬取任务进行统一的调度,并对不同类型的数据实现不同的爬取方法,以根据不同数据类型的数据入口地址自动调用不同的爬取方法对不同类型的数据爬取任务进行数据爬取;所述多源异构软件项目数据自动收集模块用于根据用户输入的软件项目名称及URL自动化探测该软件项目数据的数据类型及其对应的数据入口地址,并根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,在所述多任务多线程数据爬取模块中调用对应的爬取方法对数据进行收集;所述数据解析存储模块用于对所述多源异构软件项目数据自动收集模块收集的数据进行解析并存储到数据库中。进一步地,所述多任务多线程数据爬取模块包括任务管理模块和数据爬取模块;其中所述数据爬取模块包括任务初始化模块、数据爬取单线程运行模块、数据爬取多线程运行模块和任务结束模块;所述任务管理模块用于对多个数据爬取任务进行统一的调度;所述任务初始化模块用于为上述每个数据爬取任务分配系统资源,并构建存储目录;所述数据爬取单线程运行模块用于爬取上述每个数据爬取任务中的URL目录,并将URL目录进行划分;所述数据爬取多线程运行模块用于根据上述划分的URL目录创建多个子线程,并进行多线程数据爬取;所述任务结束模块用于对上述所有子线程数据爬取结束后释放系统资源,并记录所述数据爬取模块的结束状态。更进一步地,所述任务结束处理模块还用于对所述数据爬取模块发生异常结束处理时进行异常错误处理。进一步地,所述多源异构软件项目数据自动收集模块包括项目相关站点的Web页面爬取模块、异构数据入口的侦测模块和特定种类数据爬取模块;所述项目相关站点的Web页面爬取模块用于根据用户输入的软件项目名称及URL,并利用通用的基于广度优先的网页爬虫方法,对与该软件项目相关的多个站点中的所有Web页面进行爬取;所述异构数据入口的侦测模块用于对上述爬取的Web页面进行判断,如果该Web页面中的URL是已知的数据类型的数据入口地址,则将该数据类型的数据入口地址分发到对应的特定种类数据爬取模块;所述特定种类数据爬取模块用于根据从所述异构数据入口的侦测模块获取的已知的不同数据类型的数据入口地址,创建其对应的数据爬取任务,并在所述多任务多线程数据爬取模块中调用对应的爬取方法进行数据爬取。更进一步地,所述异构数据入口的侦测模块中的判断方法包括以下两个步骤:1)调用detect方法判断上述爬取的Web页面中的URL是否是已知的数据类型的资源页面对应的地址,若是则过滤掉以提高爬取效率,否则继续对该Web页面中的URL进行判断;2)调用detectEntry方法判断上述过滤后得到的Web页面中的URL是否是已知的数据类型的数据入口地址,若是则分发到对应的特定种类数据爬取模块,否则继续利用上述通用的基于广度优先的网页爬虫方法进行爬取。更进一步地,所述特定种类数据爬取模块爬取的数据类型包括邮件、文档、代码、Bug信息、版本控制信息;其中每种数据类型都有其对应的数据入口地址,并根据不同的数据入口地址分别实现detect方法、detectEntry方法和对应的数据爬取任务创建程序。本专利技术的有益效果在于:本专利技术提供面向软件项目的多源异构数据自动收集方法及系统,该系统首先通过多任务多线程数据爬取模块对本文档来自技高网...
面向软件项目的多源异构数据自动收集方法及系统

【技术保护点】
面向软件项目的多源异构数据自动收集方法,其步骤包括:1)根据用户输入的软件项目名称及URL,并利用通用的基于广度优先的网页爬虫方法,对与该软件项目相关的多个站点中的所有Web页面进行爬取;2)当上述爬取的Web页面中的URL是已知的数据类型的数据入口地址时,根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,并调用对应的爬取方法进行数据爬取;其中所述调用对应的爬取方法进行数据爬取包括以下步骤:2‑1)对上述创建的多个数据爬取任务进行调度;2‑2)当系统资源足够时,对每个数据爬取任务分配系统资源,并构建存储目录;2‑3)爬取上述每个数据爬取任务中的URL目录,并将URL目录进行划分;2‑4)根据上述划分的URL目录创建多个子线程,并进行多线程数据爬取;2‑5)当上述所有子线程数据爬取结束后,释放系统资源;3)对上述爬取的数据进行解析并存储到数据库中。

【技术特征摘要】
1.面向软件项目的多源异构数据自动收集方法,其步骤包括:1)根据用户输入的软件项目名称及URL,并利用通用的基于广度优先的网页爬虫方法,对与该软件项目相关的多个站点中的所有Web页面进行爬取;2)当上述爬取的Web页面中的URL是已知的数据类型的数据入口地址时,根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,并调用对应的爬取方法进行数据爬取;其中所述调用对应的爬取方法进行数据爬取包括以下步骤:2-1)对上述创建的多个数据爬取任务进行调度;2-2)当系统资源足够时,对每个数据爬取任务分配系统资源,并构建存储目录;2-3)爬取上述每个数据爬取任务中的URL目录,并将URL目录进行划分;2-4)根据上述划分的URL目录创建多个子线程,并进行多线程数据爬取;2-5)当上述所有子线程数据爬取结束后,释放系统资源;3)对上述爬取的数据进行解析并存储到数据库中。2.如权利要求1所述的方法,其特征在于,步骤2)中判断上述爬取的Web页面中的URL是否是已知的数据类型的数据入口地址包括以下两个步骤:1)调用detect方法判断上述爬取的Web页面中的URL是否是已知的数据类型的资源页面对应的地址,若是则过滤掉以提高爬取效率,否则继续对该Web页面中的URL进行判断;2)调用detectEntry方法判断上述过滤后得到的Web页面中的URL是否是已知的数据类型的数据入口地址,若是则根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,否则继续利用上述通用的基于广度优先的网页爬虫方法进行爬取。3.如权利要求1所述的方法,其特征在于,步骤2)中所述数据爬取任务包括软件项目相关信息以及需要爬取的数据类型;其中所述软件项目相关信息包括软件项目名称、软件项目爬取开始时间、软件项目URL。4.如权利要求1所述的方法,其特征在于,步骤2-2)中所述存储目录包括存储文件目录和爬取任务记录;其中所述存储文件目录是指“软件项目名称/资源名称”形式的文件目录;所述爬取任务记录包括软件项目名称、数据类型、存储地址、任务状态。5.面向软件项目的多源异构数据自动收集系统,包括多任务多线程数据爬取模块、多源异构软件项目数据自动收集模块和数据解析存储模块;所述多任务多线程数据爬取模块用于对多个数据爬取任务进行统一的调度,并对不同类型的数据实现不同的爬取方法,以根据不同数据类型的数据入口地址自动调用不同的爬取方法对不同类型的数据爬取任务进行数据爬取;所述多源异构软件项目数据自动收集模块用于根据用户输入的软件项目名称及URL自动化探测该软件项目数据的数据类型及其对应的数据入口地址,并根据已知的不同数据类型的数据入口地址创建其对应的数据爬取任务,在所述多任务多线程数据爬取模块中调用对应的爬取方法对...

【专利技术属性】
技术研发人员:邹艳珍倪际楠曹英魁谢冰赵俊峰
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1