专利名称:数据采集方法和数据采集系统的制作方法
技术领域:
本发明涉及互联网技术领域,尤其涉及一种数据采集方法和数据采集系统。
背景技术:
在现阶段的电子地图的地理信息数据的生产过程中,均是通过人工的方式进行地 理信息数据的采集。在需要采集的地理信息数据规模较大时,通过人工方式采集的效率较 低。另外,目前地理信息数据的更新速度也急剧加快,通过人工方式也无法做到地理信息数 据的及时更新,难以满足大规模地理信息数据生产的需求。
发明内容
有鉴于此,本发明提供一种数据采集方法和数据采集系统,能够自动从互联网上 采集用户所需数据。为解决上述问题,本发明提供一种数据采集方法,包括以下步骤根据URL分配策略和待采集站点URL信息,生成待下载URL集合;根据所述待下载URL集合,下载URL源码;对所述URL源码进行分析,得到用户所需数据。所述URL分配策略为预设待采集站点的URL在所述待下载URL集合中所占的条数;和/或预设URL级别的URL在所述待下载URL集合中所占的条数。所述对所述URL源码进行分析,得到用户所需数据,具体包括抽取所述URL源码中的情报数据;从所述情报数据中,获取满足预设过滤规则的第一数据;采用机器学习算法,将所述第一数据与语料库中的预设语料文件进行匹配,获取 所述第一数据的信息价值;将信息价值超过第一预设阈值的第一数据作为所述用户所需数据。所述得到用户所需数据,之后还包括从所述用户所需数据中提取属于特定时间范围,且信息价值超过第二预设阈值的 第二数据,所述第二预设阈值大于所述第一预设阈值;将所述第二数据作为新的语料文件,更新所述语料库。所述得到用户所需数据,之后还包括获取所述用户所需数据对应的URL,作为有效URL ;统计所述待采集站点中包含的有效URL的条数;根据所述待采集站点中包含的有效URL的条数,更新所述待采集站点的URL在所 述待下载URL集合中所占的条数。所述根据所述待下载URL集合,下载URL源码,之后还包括从所述URL源码中,获取满足预设条件的URL,所述预设条件为所述URL不属于特定类型,且为所述待采集站点的URL,且不属于所述待采集站点的站内URL黑名单;根据所述满足预设条件的URL,更新所述待采集站点URL信息。所述从所述URL源码中,获取满足预设条件的URL,之后还包括将所述满足预设条件的URL存储于内存映射文件中,且采用双层哈希表记录所述 满足预设条件的URL的存储位置。所述用户所需数据为地理信息数据。本发明还提供一种数据采集系统,包括生成模块,用于根据URL分配策略和待采集站点URL信息,生成待下载在URL集 合;下载模块,用于根据所述待下载在URL集合,下载URL源码;分析模块,用于对所述URL源码进行分析,得到用户所需数据。所述生成模块、所述下载模块和所述分析模块设置于一台或多台计算机上。本发明具有以下有益效果系统的自动化程度高。能够自动从互联网上获取用户所需数据,有效提高了数据 采集速度,从而能够快速增加数据采集总量,满足大规模数据生产的需求,相对人工方式采 集数据来说,既极大地提高了数据生产效率,又节省了人力成本;系统学习能力强。通过对得到的用户所需数据进行分析,能够自动调整URL分配 策略和语料库,从而能够满足数据更新速度急剧加快的需求。系统并发性高。系统各模块之间互相对立,能够分布式部署,从而提高了系统的并 发能力。系统处理能力高。采用内存映射机制,能够支持大批量的URL分析处理,同时采用 自动修复映射文件机制,能够有效避免服务器突然中断带来的损失。
图1为本发明实施例的数据采集方法的一流程示意图;图2为本发明实施例的数据采集方法的另一流程示意图;图3为本发明实施例的数据采集系统的一结构示意图;图4为本发明实施例的数据采集系统的另一结构示意图;图5为本发明实施例的URL下载模块的示意图;图6为本发明实施例的信息价值分析模块的示意图;图7为本发明实施例的URL分析模块的示意图;图8为本发明实施例的日志分析模块的示意图;图9为本发明实施例的URL分配策略模块的示意图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。如图1所示为本发明实施例的数据采集方法的一流程示意图,所述数据采集方法 包括以下步骤步骤101,根据 URL (Uniform/Universal Resource Locator,统一资源定位符)分配策略和待采集站点URL信息,生成待下载URL集合。所谓URL也称成网页地址,是因特网(Internet)上标准的资源地址(Address)。 所述URL分配策略可以为包括预设待采集站点的URL在所述待下载URL集合中所占的条 数。预设待采集站点的URL在所述待下载URL集合中所占的条数,也称为预设待采集站点 的下载权重,例如,URL分配策略可以设置为待采集站点A的下载权重为30%,即每100条 待下载URL集合中属于待采集站点A的URL占30条。所述URL分配策略还可以为包括预 设URL级别的URL在所述待下载URL集合中所占的条数。本发明实施例中,可以将URL划 分为四个级别,其中,级别1 通常需要快速下载,例如,下载期限为2天(即需要在2天内 下载完成),级别2 —般为列表页,其下载期限略长于级别1的下载期限,例如,下载期限为 5天,级别3 —般为详细页,其下载期限略长于级别2的下载期限,例如,下载期限为一周, 级别4:其下载期限最长,例如,下载期限为一个月。此时,URL分配策略可以设置为级别1 的URL的下载权重为50%,即每100条待下载URL集合中级别1的URL占50条。所述待采集站点URL信息包括待采集站点的URL和待采集站点的站内URL黑名 单(即不需要访问的站内URL)。所述待采集站点的URL可以为待采集站点的首页URL(也 称为站点种子),也可以为待采集站点的子页面URL。在系统初始化时,通常设定URL分配策略为空,且将所述待采集站点的首页URL作 为最初的待下载URL,生成待下载URL集合。另外,为了获取大量的用户所需数据,在系统初 始化时,待采集站点的个数通常设置的较多,例如为1000个。步骤102,根据所述待下载URL集合,下载URL源码;所述待下载URL集合可以存储于一 “URL下载队列,,中,并按照先进先出的顺序从 所述“URL下载队列”中获取待下载URL,根据所述待下载URL下载URL源码。具体的,系统通过域名服务器解析所述待下载URL,将所述待下载URL转换成待IP 地址,从而根据IP地址,下载URL源码。步骤103,对所述URL源码进行分析,得到用户所需数据。所述用户所需数据可以为地理信息数据、图书数据、产品数据等。通过上述实施例提供的数据采集方法,能够自动从互联网上获取用户所需数据, 有效提高了数据采集速度,从而能够快速增加数据采集总量,满足大规模数据生产的需求, 相对人工方式采集数据来说,既极大地提高了数据生产效率,又节省了人力成本。下面对URL源码的分析过程进行详细描述。如图2所示为本发明实施例的数据采集方法的另一流程示意图,所述数据采集方 法包括以下步骤步骤201,根据URL分配策略和待采集站点URL信息,获取待下载URL集合;步骤202,根据所述待下载URL集合,下载URL源码;步骤203,抽取所述URL源码中的情报数据;所述情报数据可以包括当前页面的URL、页面标题、页面内容、页面创建时间、所 属站内URL目录等。步骤204,从所述情报数据中,获取满足预设过滤规则的第一数据;所述预设过滤规则可以为时间过滤规则,例如,如果只需获取某一时间段内待采 集站点的更新数据,则可以通过时间过滤规则以及情报数据中的页面创建时间,仅获取某一时间段内创建的情报数据。步骤205,采用机器学习算法,将所述第一数据与语料库中的预设语料文件进行匹 配,获取所述第一数据的信息价值;所述语料库中记载有与用户所需数据相关的多个语料文件,所述语料文件中记载 有用户所需数据的数据格式、字符编码或文本描述等信息。假设用户所需数据为交通类数 据,则所述语料库中则存储有多个交通类数据相关的语料文件,所述语料文件中记载有交 通类数据的特定规则。可以通过机器学习算法,将所述第一数据与语料库中的预设语料文 件进行匹配,判断所述第一数据与所述预设语料文件的匹配度,从而得到所述第一数据的 信息价值。步骤206,将信息价值超过第一预设阈值的第一数据作为所述用户所需数据。所述信息价值可以设定为0至100分,例如,通过与预设语料文件匹配,得到所述 第一数据的信息价值为70分。假设所述第一预设阈值为80分,则所述第一数据则不是用 户所需数据。步骤207,从所述用户所需数据中提取属于特定时间范围,且信息价值超过第二预 设阈值的第二数据,所述第二预设阈值大于所述第一预设阈值;为了使得语料库中的语料文件的信息价值较高,因此,设定的第二预设阈值要远 大于第一预设阈值,例如,所述第一预设阈值可以设定为80分,所述第二预设阈值可以设 定为95分。步骤208,将所述第二数据作为新的语料文件,更新所述语料库。另外,还可以对得到的用户所需数据进行分析,自动调整URL分配策略,从而能够 满足数据更新速度急剧加快的需求。此时,上述方法还包括步骤209,获取所述用户所需数据对应的URL,作为有效URL ;步骤210,统计所述待采集站点中包含的有效URL的条数;步骤211,根据所述待采集站点中包含的有效URL的条数,更新所述待采集站点的 URL在所述待下载URL中所占的条数(即所述待采集站点的下载权重)。另外,还可以统计待采集站点与数据类别的比重,调整数据类别在待采集站点中 的阀值。以及,统计预设URL目录中包含的有效URL的条数,将不包含有效URL或者包含很 少个有效URL的URL目录列入URL黑名单。 上述实施例中,在抽取所述URL源码中的情报数据时,还可以从所述URL源码中抽 取出URL,从而更新所述待采集站点URL信息。因此,上述方法还包括步骤212,从所述URL源码中,抽取URL ;步骤213,从所述抽取的URL中,获取满足预设条件的URL,所述预设条件为所述 URL不属于特定类型(例如图片类型(URL的后缀为*. jpg等)、特定文档类型(URL后缀 为*. PPt等)),且属于所述待采集站点(本发明实施例中也将待采集站点称为白名单)的 URL,且不属于所述待采集站点的站内URL黑名单。步骤214,根据所述满足预设条件的URL,更新所述待采集站点URL信息。另外,为了防止随着URL的增加而使得系统负担增大,可以将满足预设条件的URL 存储于内存映射文件中,通过内存映射机制,在单个服务器GG内存)能够支持一亿个URL的分析处理。另外,为了方便查找,可以采用双层哈希表(hash)记录所述满足预设条件的 URL的存储位置。采用双层哈希表可以确定URL的唯一存储位置,其中,第一层hash为固定 值(例如1 500),可用于分布式扩展,第二层可自动扩展(即大小不限)。另外,由于内 存映射文件时时变动,为了防止由于服务器突然中断而带来的影响,需对具有一定机制对 内存映射文件进行还原。例如,可以每隔一定时间将内存映射文件保存一次,然而由于内存 映射文件通常较大(1千万URL的信息大概有2G大小),因此,每次使用拷贝将占用了大量 的时间与空间。本发明实施例中,可以仅保存内存hash的信息(最多为500M)为hash文 件,通过hash文件,可快速还原内存映射文件,通常情况下,在3分钟之内可还原1千万的 URL信息。对应于上述数据采集方法,本发明实施例还提供一种数据采集系统,如图3所示, 所述数据采集系统包括生成模块301,用于根据URL分配策略和待采集站点URL信息,生成待下载URL集 合;下载模块302,用于根据所述下下载URL集合,下载URL源码;分析模块303,用于对所述URL源码进行分析,得到用户所需数据。所述生成模块301、所述下载模块302和所述分析模块304可以设置于一台计算机 上,当然,为了提高系统的并发能力,所述生成模块301、所述下载模块302和所述分析模块 304还可以设置于多台计算机上。下面举例对上述实施例的数据采集系统进行详细说明。如图4所示为本发明实施例的数据采集系统的另一结构示意图,所述数据采集系 统包括WEB管理系统模块、URL下载模块、信息抽取模块、信息价值分析模块、URL分析模 块、日志分析模块和URL分配策略模块,上述各模块可以分布在一台或多台计算机上,由于 每台计算机的处理能力有限,通常将上述模块设置于多台计算机上,各模块通过指定类型 的信息包与管道进行通信。管道是一种通信机制,由计算机的操作系统提供。信息包可以 采用轮寻的方式或广播的方式在管道中传送,每个模块只处理(接收和或删除)属于该模 块的指定规定类型的信息包,处理后按约定的方式向管道中发送新的信息包。各模块的如下所示1、WEB管理系统模块WEB管理系统模块在系统初始化时使用,用于输入待采集站点URL信息(例如,待 采集站点的首页URL、待采集站点的站内URL黑名单等),得到待下载URL集合,并根据所述 待下载URL集合,生成“URL下载包”发送给管道。所述待下载URL集合中包括多个URL,例如1000个,根据所述待下载URL集合生成 的“URL下载包”可以为多个,每一“URL下载包”中可以包括若干个待下载URL,例如10个。由于是数据采集的初始化阶段,因此该步骤中URL分配策略设置为空。2、URL下载模块所述URL下载模块主要用于下载URL,其主要包括以下步骤1)在管道中获取“URL下载包”,把待下载URL存到URL下载对列中;所述URL下 载队列的容量有限,例如长度为100,即仅能存储100个待下载URL。当URL下载对列中的 URL小于某固定值(例如90)时,所述URL下载模块可以主动向管道发送“请求URL包”,以请求新的待下载URL。2)从URL下载对列中获取待下载URL,把待下载URL发送给客户端。如图5所示为本发明实施例的URL下载模块的示意图,所述URL下载队列可以位 于一服务器上,而具体的URL下载任务可以由一个或多个客户端执行,服务器与客户端之 间可以通过socket (套接字)通信,在待下载URL数据较大时,通常采用多个客户端同时执 行下载任务。3)获取客户端下载的URL源码,并生成“URL源码包”向管道发送。3、信息抽取模块1)在管道中获取“URL源码包”,对所述“URL源码包”进行分析,从URL源码中抽 取出URL列表,生成“URL列表包”,所述“URL列表包”用于待采集站点URL信息的更新;2)从URL源码中抽取出情报信息,生成“信息分析包”;3)向管道发送所述“URL列表包”和“信息分析包”。4、信息价值分析模块所述信息价值分析模块主要用于获取用户所需数据,其可以包括以下步骤1)在管道中获取“信息分析包”,根据时间过滤规则以及语料库,对所述“信息分析包”中的情报信息进行分析,得到用户所需数据。如6图所示为本发明 实施例的信息价值分析模块的示意图。2)将分析得到的用户所需数据的相关信息(信息价值、所属类别等)以及情报信 息整合在一起,生成“日志分析包”,并向管道发送。5、URL分析模块如7图所示为本发明实施例的URL分析模块的示意图,所述URL分析模块的工作 流程主要包括以下步骤1)在管道中获取“URL列表包”,获取满足预设条件的URL,所述满足预设条件的 URL为不属于特定类型的URL,且属于待采集站点的URL,且不属于站内URL黑名单;2) URL 排重:判断内存映射文件中是否存在重复的URL,如果存在重复的URL,则判断URL的更 新时间是否发生变化,如果URL的更新时间发生变化,则修改内存映射文件中存储的该URL 的相关信息,例如修改URL更新时间、URL下载时间(可以将下载时间置为空);如果URL 的更新时间未发生变化,则结束;如果不存在重复的URL,则对URL的级别进行计算,得到URL的级别信息,并将URL 信息插入内存映射文件。6、日志分析模块在管道中获取“日志分析包”,将所述“日志分析包”中的数据存入数据库中的两个 表格中,其中第一个表格主要包含的字段为URL、信息价值、类别ID、标题、内容、记录插入 时间(即数据插入数据库的时间)等,第二个表格主要包含的字段为URL、信息价值、类别 ID (用户所需数据所属的类别的编号)、站点ID (用户所需数据对应的待采集站点的编号)、 站内目录ID(用户所需数据对应的待采集站点的站内URL目录的编号)、记录插入时间等。如图8所示为本发明实施例的日志分析模块的示意图,所述日志分析模块的工作 流程主要包括以下步骤
1)定期对第一个表格进行分析,提取特定时间范围内的数据,把信息价值度高的 信息,推送给对应类别的语料文件,更新语料库,推送方式由机器自动推到和人工审核两种 方式。2)定期对第二个表格进行分析,提取特定时间范围内的数据(将用户所需数据对 应的URL称为有效URL);A 统计待采集站点中有效URL所占的比重,对于比重高的待采集站点,赋予更高 的下载权重;B 统计待采集站点的站内URL目录中有效URL所占的比重,把比重低的站内URL 目录,列入站内URL黑名单;此时,为了提高准确度,还可以由人工来审核系统推送的URL是 否需要列入URL黑名单;C 统计待采集站点与数据类别的比重,调整数据类别在待采集站点中的阀值。根据上述分析结果,对URL分配策略进行更新。7、URL分配策略模块如图9所示为本发明实施例的URL分配策略模块的示意图。1)当“URL调度队列”中的URL的个数小于一定值时,例如小于100时,扫描URL 分析模块产生的映射文件,以及日志分析模块产生的URL分配策略,生成“URL调度队列”; 所述“URL调度队列”用于存储通过URL分配策略从所述内存映射文件中获取的待下载URL
皇A
朱口 ο或者,所述“URL调度队列”也可以定时(例如每天零点)扫描URL分析模块产生 的映射文件,以及日志分析模块产生的URL分配策略,生成“URL调度队列”;2)在管道中获取“请求URL包”,从“URL调度对列”中,向管道发送“URL下载包”。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
1.一种数据采集方法,其特征在于,包括以下步骤根据统一资源定位符URL分配策略和待采集站点URL信息,生成待下载URL集合; 根据所述待下载URL集合,下载URL源码; 对所述URL源码进行分析,得到用户所需数据。
2.根据权利要求1所述的数据采集方法,其特征在于,所述URL分配策略为 预设待采集站点的URL在所述待下载URL集合中所占的条数;和/或预设URL级别的URL在所述待下载URL集合中所占的条数。
3.根据权利要求2所述的数据采集方法,其特征在于,所述对所述URL源码进行分析, 得到用户所需数据,具体包括抽取所述URL源码中的情报数据; 从所述情报数据中,获取满足预设过滤规则的第一数据;采用机器学习算法,将所述第一数据与语料库中的预设语料文件进行匹配,获取所述 第一数据的信息价值;将信息价值超过第一预设阈值的第一数据作为所述用户所需数据。
4.根据权利要求3所述的数据采集方法,其特征在于,所述得到用户所需数据,之后还 包括从所述用户所需数据中提取属于特定时间范围,且信息价值超过第二预设阈值的第二 数据,所述第二预设阈值大于所述第一预设阈值;将所述第二数据作为新的语料文件,更新所述语料库。
5.根据权利要求3所述的数据采集方法,其特征在于,所述得到用户所需数据,之后还 包括获取所述用户所需数据对应的URL,作为有效URL ; 统计所述待采集站点中包含的有效URL的条数;根据所述待采集站点中包含的有效URL的条数,更新所述待采集站点的URL在所述待 下载URL集合中所占的条数。
6.根据权利要求1所述的数据采集方法,其特征在于,所述根据所述待下载URL集合, 下载URL源码,之后还包括从所述URL源码中,获取满足预设条件的URL,所述预设条件为所述URL不属于特定 类型,且为所述待采集站点的URL,且不属于所述待采集站点的站内URL黑名单; 根据所述满足预设条件的URL,更新所述待采集站点URL信息。
7.根据权利要求6所述的数据采集方法,其特征在于,所述从所述URL源码中,获取满 足预设条件的URL,之后还包括将所述满足预设条件的URL存储于内存映射文件中,且采用双层哈希表记录所述满足 预设条件的URL的存储位置。
8.根据权利要求1至7任一项所述的数据采集方法,其特征在于,所述用户所需数据为 地理信息数据。
9.一种数据采集系统,其特征在于,包括生成模块,用于根据URL分配策略和待采集站点URL信息,生成待下载URL集合; 下载模块,用于根据所述待下载URL集合,下载URL源码;分析模块,用于对所述URL源码进行分析,得到用户所需数据。
10.根据权利要求9所述的数据采集系统,其特征在于,所述生成模块、所述下载模块 和所述分析模块设置于一台或多台计算机上。
全文摘要
本发明提供一种数据采集方法和数据采集系统,所述数据采集方法包括以下步骤根据URL分配策略和待采集站点URL信息,生成待下载URL集合;根据所述待下载URL集合,下载URL源码;对所述URL源码进行分析,得到用户所需数据。本发明能够自动从互联网上采集用户所需数据。
文档编号G06F17/30GK102118400SQ20091020679
公开日2011年7月6日 申请日期2009年12月31日 优先权日2009年12月31日
发明者汪洋, 程鹏, 罗丽俊, 陈文斌 申请人:北京四维图新科技股份有限公司