Web领域分布式实时抽取系统的制作方法

文档序号:10624767阅读:458来源:国知局
Web领域分布式实时抽取系统的制作方法【专利摘要】本申请提出了一种新的对各大网站进行数据抽取的深度数据挖掘方法,该方法能够实现全天候,自动化的定向抽取所指向的网站,采用的语言为css/html或jquery格式,其中的自动化模块能够根据一定的频率对存入其中列表的网站进行数据抽取,可以设定抽取次数或者无限制自动循环,另一个分布式爬虫模块,能够根据一定的频率对网站进行抽取,可以进行多层次抽取,抽取后的内容经过过滤层,通过对抽取内容进行缺失值补缺,一定的过滤值进行过滤,最后根据设置情况将结果存入当地或者远程数据库之中,本系统可以实现分布式的,全天候的自动化式的数据抽取和集成。【专利说明】Web领域分布式实时抽取系统所属
技术领域
[0001]本发明涉及一种DeepWeb数据集成方法及系统,特别涉及一种基于分布式的数据集成方法及系统。【
背景技术
】[0002]当前传统的搜索引擎比如baidu,google,仅能够搜索到浅层次的数据,目前网络上存在大量的在网站内部的数据,比如门户网站,论坛,贴吧等,称之为De印Web,这些数据无法被传统的搜索引擎检索到。为了克服传统的搜索引擎不能深度挖掘数据的不足,系统采用最新的技术,发明一种方法把各网站内部的所需要抽取的数据抽取出来,集成到自己网站,然后提供给用户进行检索,方便用户上网查询。【
发明内容】[0003]本发明提供了一种分布式的向各大网站数据进行自动化地数据抽取和集成系统与方法,本发明包括两个模块。[0004]第一个模块是自动化模块:[0005]1.抓取网站列表模块[0006]2.抓取频率设置模块[0007]第二个模块是分布式网络爬虫模块:[0008]1.频率设置模块[0009]2.抓取准备模块[0010]3.抓取内容模块[0011]3.1过滤器内容模块[0012]3.2第一层内容抓取实施模块[0013]3.3第二层数据抓取名单[0014]3.4第二层内容抓取实施模块[0015]4.数据库设置模块[0016]4.1本地数据库设置模块[0017]4.2远程数据库设置模块[0018]本发明提供的数据抽取方法,包括以下几个步骤:[0019](I)数据库配置:设置好主机端和分布式爬虫端的数据库配置,使主机端的数据库服务器能够接受分布式爬虫机器端的进行的远程数据存储和更新。[0020](2)程序执行自动化模块:[0021]1.程序读取抓取网站列表名单,以从中提取所需要爬取网站的配置文件列表;[0022]2.程序读取频率设置,包括是否进行永久不停的循环式抓取,如果不循环,需要赚取的次数,及每次抓取之间休息的间隔时间;[0023]3.程序对列表中的一个网站进行抓取;[0024]4.程序将列表中所有网站的抓取执行完毕之后,休息一段时间,再对该列表的网站进行抓取;[0025]5.程序对4中所提出的,可能进行不停止的抓取,也有可能抓取几次就停止了;[0026](3)程序执行分布式爬虫模块:[0027]1.程序读取单个网站的配置信息,包括抓取频率,抓取准备,抓取内容,数据库配置;[0028]2.程序按照抓取频率模块中定义的,读取开始页面.每个阶段抓取的步长,每个阶段抓取的步数,循环的每个阶段的次数,每个循环里面需要停顿的时间;[0029]3.程序读取抓取准备模块,模拟用户使用http或https向网站发送请求;[0030]4.程序读取抓取内容:通过对返回信息进行一次数据处理,主要是第一层数据抓取;[0031]5.程序读取抓取内容:对网站进行第二层数据抓取;[0032]6.程序对抓取的内容进行筛选:包括补上缺失值,过滤掉一些冗余内容等;[0033]7.程序根据数据库配置文件,将内容保存在本地数据库或者服务器端的数据库里;[0034]8.程序休息一段时间,根据频率设置中的步数和步宽进行下一个网站的爬取;[0035]9.当步数达到预定值时,根据频率设置中的频次,对该网站进行再一次的抓取,起点为刚刚结束的网页。[0036]本发明的有益效果是可以把各网站内部的所需要抽取的数据抽取出来,集成到自己网站,然后提供给用户进行检索,方便用户上网查询。【附图说明】[0037]图1是根据本发明的数据集成系统的系统架构图。[0038]图2是本发明自动化模块的架构图。[0039]图3是本发明自动化模块的流程图。[0040]图4是本发明分布式爬虫的各内部模块图。[0041]图5是本发明分布式爬虫的流程图。【具体实施方式】[0042]一、数据库设置模块:[0043](I)在服务器端的数据库服务器增加命令行,使之允许分布式爬虫所在电脑的ip,以及其所拥有的一个特定的用户名对该服务器端所在数据库服务器进行的远程数据写入与更新。[0044](2)在爬虫端电脑,远程数据库登陆模块,设定好需要登陆的远程服务器端,其电脑的IP地址及数据库端口,需要登陆的数据库的名字,需要使用的用户名,即第I条中的服务器端允许这个特定的用户名,需要登陆的密码,需要登陆的那张表格名称。[0045](3)在爬虫端电脑,本地数据库登陆模块,设定好需要登陆的本地电脑的IP地址及数据库端口,需要登陆的数据库的名字,需要使用的用户名,一般是Root,需要登陆的密码,需要登陆的那张表格的名称。[0046]二、程序执行自动化装置设置模块:[0047]设置好需要自动化列表文件list,xml,[0048]1.site:需要爬取的网站的配置文件名及位置[0049]2.for_ever_;run:确定是否进行永久循环状态进行抓取[0050]3.query_frequence:如果不进行永久循环状态的抓取,则抓取的次数[0051]4.sleep_time:每次抓取完个列表的网站之后,进彳丁的睡眠时间[0052]三、程序执行分布式爬虫模块:[0053](1)设置好爬虫的爬取频率[0054]1.start_page:爬虫开始抓取的第一个页面[0055]2.query_frequence:抓取页面的频率[0056]3.query_step_interval:—个网页抓取后向下一个需要抓取的页面迈进的页面间隔[0057]4.query_step_times:每个轮次抓取页面的迈进的步骤数目[0058]5.sleep_time:每个轮次抓取之后的休息时间[0059](2)设置好爬虫的准备阶段:[0060]1.charset:抓取网站的编码格式[0061]2.query_page_front:抓取链接的前端,不包含页码的那部分[0062]3.query_page_end:抓取链接的后端,不包含页码的那部分[0063](3)设置好爬虫的抽取内容:[0064]1.filter_list:过滤器单子[0065]node:每一个需要放入数据库表单的节点[0066]name:放入表单的名称[0067]default_value:如果值缺失,采用该值填充缺失值[0068]regex:使用正则语言对所取出的值进行过滤,将包含的内容过滤掉.[0069]2.query_level_nodes:需要抓取的内容的节点单子[0070]first_level_nodes:第一层需要抓取的节点单子[0071]top_node:所需要抽取的节点的最顶层的路径,用css/html,jquery的语法描写[0072]common_path:基础路径,针对某些抽取的信息为相对路径的情况,该节点的内容可以将相对路径补全为绝对路径[0073]nodes:即需要抽取内容的节点集,[0074]node:每个需要抽取信息的节点[0075]name:需要抽取内容的名字[0076]select:需要抽取内容的select的相对路径,每层用$分隔开[0077]attribute:需要抽取内容的attribute部分[0078]text:需要抽取node的text部分是否需要被抽取[0079]seconde_level_node_list:需要进行抓取的第二层次节点的名单[0080]node:需要进行第二次抓取的节点名单,从第一层抓取节点的名单里选取[0081]seconde_level_nodes:需要进行抓取的第二层次节点名单[0082]top_seconde_level_node:第二层的需要抓取的顶层节点[0083]nodes:需要抓取的第二层节点集[0084]node:第二层节点[0085]name:需要抽取的node的名字[0086]select:需要抽取的node的select路径[0087]attribute:需要抽取的node的attribute[0088]text:需要抽取的node的text部分[0089](4)设置好数据库配置内容:[0090]1.本地数据库配置:[0091]database_connect:是否连接本地数据库[0092]hostname:连接数据库的host[0093]database_name:连接数据库的数据库名字[0094]userid:连接数据库的用户名[0095]password:连接数据库的密码[0096]table_name:需要写入数据的表格的名称[0097]2.远程数据库配置:[0098]remote_database_connect:是否登陆远程数据库[0099]remote_hostname:登陆的远程数据库的host:[0100]remote_database_name:登陆的远程数据库的数据库名字[0101]remote_userid:登陆远程数据库使用的用户名[0102]remote_password:登陆远程数据库使用的密码[0103]remote_table_name:登陆远程数据库里面的特定表格名。【主权项】1.Web领域分布式实时数据抽取系统,其特征在于,包括以下步骤:读取需要抽取的网站名列表里面的信息;根据信息,根据一定的频率,对网站(论坛,门户网站等)进行数据抽取,采用的语言css/html或者jquery格式;对抽取的内容进行一次处理,包括缺失值补缺,过滤器设置等;根据配置文件,将处理后的内容传送到本地或者远程数据库中。2.根据权利要求1所述的一种数据集成方法,需要抓取的网站名列表写在construct,xml配置文件中,所要抓取的网站的配置文件都按照一个一个列表写在list,xml中,其中包括site存储每个网站配置文件construct,xml的路径。3.根据权利要求1所述的一种爬虫频率调节方法,是否采用循环制,如果不采用将设置好抓取的次数和每次抓取的休息时间。4.根据权利要求2所述的频率调整模块,包括开始页面的设置开始页面,每次抓取的步长,每轮抓取的步数,抓取轮次的数目,以及每次抓取完后需要一定的休息时间。5.根据权利要求2所述的抓取准备阶段,所抓取网站的编码方式将抓取网址前段,后段和页码拼接成抓取链接的方式。6.根据权利要求2所述的内容抽取细则方面,第一层,第二层内容的抓取中设置top_node,其所代表路径select用$分隔。7.根据权利要求2所述的内容抽取细则,每个节点,包含有name,select;attribute,text四个选项,其中select指明用于select的路径,其符合css/html或jquery格式,每层的路径采用$分隔,attribute中填写需要抽取的node的名字即可,text说明是否选用text〇8.根据权利要求2所述的内容抽取细则,第二层抽取的节点的名单在第二层节点名单里面。9.根据权利要求3所述,抽取上来的第一第二层节点的内容需要经过一个过滤机构,包含该节点的名字,缺失时自动填充值,用于补上该值缺失时的一个自动填充值,过滤内容,即抽取上来的值进行过滤,将需要被滤掉的值用regex格式写在该条框里。10.根据权利要求4所述的数据库配置细则,分为两个部分,一个是远程数据库配置,包括是否登陆远程数据库,远程数据库的名字,远程的主机,远程的用户名,远程的密码,远程的表格名,另一个是本地数据库配置,包括是否登陆本地数据库,本地主机,本地数据库名字,用户名,密码,表格名。【文档编号】G06F17/30GK105988994SQ201410842253【公开日】2016年10月5日【申请日】2015年2月6日【发明人】刘挺,孟小峰【申请人】北京询达数据科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1