CN103258017B - 一种并行的垂直交叉网络数据采集方法及系统 - Google Patents
一种并行的垂直交叉网络数据采集方法及系统 Download PDFInfo
- Publication number
- CN103258017B CN103258017B CN201310146080.7A CN201310146080A CN103258017B CN 103258017 B CN103258017 B CN 103258017B CN 201310146080 A CN201310146080 A CN 201310146080A CN 103258017 B CN103258017 B CN 103258017B
- Authority
- CN
- China
- Prior art keywords
- downloaded
- page
- list
- webpage
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种并行的垂直交叉网络数据采集方法及系统,方法包括:S1确定采集方式,若是普通URL列表采集方式根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据;S2定时更新任务,对已下载的网页中第一层到当前层的所有网页进行扫描检查,当新下载的页面最后修改时间大于已下载的页面最后修改时间时,对该新下载的页面重新进行数据采集,更新网页数据记录。本发明避掉了多线程技术的一些潜在风险和代价,降低了多线程并行采集的潜在风险与代价,可以实现海量数据更稳定、更高效的并行采集,提高了数据读取和查询的效率。
Description
技术领域
本发明涉及互联网领域,尤其涉及一种并行的垂直交叉网络数据采集方法及系统。
背景技术
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。
设计网络爬虫时通常考虑四种策略的组合:
选择策略:决定所要下载的页面;
重新访问策略:决定什么时候检查页面的更新变化;
平衡礼貌策略:怎样避免站点超载;
并行策略:怎么协同达到分布式抓取的效果。
网页抓取的选择策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入问题,目前常见的是广度优先和最佳优先方法。
广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索,其流程如图10所示。该算法的设计和实现相对简单,且能覆盖尽可能多的网页。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。
网页抓取的重新访问策略,主要使用系统定时任务完成,使用单独的线程或者进程对已下载的网页进行监控一旦到达检查时机便开始扫描所有已经下载网页判断哪些网页需要重新下载。
爬虫相比于人,可以有更快的检索速度和更深的层次,所以他们可能使一个站点瘫痪。此外,一个服务器也会很难响应多线程爬虫的请求。爬虫的使用对一般的网站,可能要付出代价。
网页抓取的并行策略,以往主要采用多线程技术实现多主体并行下载。
由于网络爬虫设计策略中的并行策略,现有的爬虫技术大部分是基于单机或多机多线程实现网页的并行采集。
多线程技术在爬虫中的使用可以提高资源使用效率从而提高整个系统的执行效率,但同时也会出现一些问题。例如,当系统使用大量线程时,因为操作系统需要不停地在线程之间切换,反而会降低程序执行效率,使程序运行时间增加;更多的线程需要更多的内容空间以支持程序运行,因为除共享资源外,每一个线程还拥有各自的独占资源;多线程由于共享资源从而容易产生线程死锁等。针对这些多线程技术的不足,本发明设计了全新的基于Hadoop的并行爬虫。该发明在爬取技术上没有使用多线程爬取技术,因此避免了多线程技术的各种局限和不稳定。具体地,该发明利用Hadoop自身的并行机制,在map阶段将种子URL列表中的URL分发到不同节点,在多个节点上完成网页爬取;然后,将每一个网页获取的相关URL列表在reduce阶段进行整合,返回给主控节点进行下一次分发。
此外,已有的普通垂直网页爬虫针对的采集目标只能是领域内的对象(例如,一个特定企业、一只特定股票等),而本发明设计的爬虫系统针对的采集目标既可以是对象,也可以是对象的属性(例如,一只股票的涨跌、走势变化等),实现了垂直基础上的交叉的采集模型。
但是现有技术使用爬虫的代价及问题仍然存在,如:
网络资源:在很长一段时间,爬虫使用相当的带宽高度并行地工作。
服务器超载:尤其是对给定服务器的访问过高时。
质量糟糕的爬虫,可能使服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页面。
个人爬虫,如果过多的人使用,可能是网络或者服务器阻塞。
而以对象为采集目标的不足主要表现在,采集的网页层次结构过于单一,不便于后续进行数据分析和处理;以多线程为采集手段的缺陷主要表现在,当线程量过大时,调度代价、资源占用代价等都会随之增大,同时存在较高的线程死锁风险。
发明内容
为解决现有的网络爬虫以对象为采集目标,以多线程技术为采集手段所带来的不足与缺陷,本发明提供一种并行的垂直交叉网络数据采集方法及系统,避掉了多线程技术的一些潜在风险和代价,降低了多线程并行采集的潜在风险与代价,可以实现海量数据更稳定、更高效的并行采集,对目标网页实现了粗聚类,便于后续的分析和处理操作,并提高了数据读取和查询的效率。
为实现上述发明目的,本发明提供一种并行的垂直交叉网络数据采集方法,该方法包括:
步骤1,根据配置参数确定采集方式,若是普通URL列表采集方式,则根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式,则利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据;
步骤2,定时更新任务,对已下载的网页中第一层到当前层的所有网页进行扫描检查,当新下载的页面最后修改时间大于已下载的页面最后修改时间时,对该新下载的页面重新进行数据采集,更新网页数据记录。
进一步的,所述步骤1中:
当所述待下载网页为doc或者pdf格式的文本文件时,对文本文件的内容进行解析后下载其内容中的纯文本部分;若所述待下载网页为普通网页时,则直接下载全部HTML页面内容。
所述待下载网页为普通网页时,则直接下载全部HTML页面内容中:将所述普通网页链接到的所有网页作为Map阶段的标准输出,并将超级链接形成的列表写入分布式文件系统,然后启动一个新的Mapper将所述列表作为种子列表输入新的采集任务。
进一步的,所述步骤1中以所述关键字列表的对象属性进行检索,并将所述关键字列表中的对象名称作为过滤值对检索结果进行过滤处理,并将过滤处理后的检索结果作为初始网页列表进行下载,然后再将待下载网页中的元数据写入分布式数据库。
为实现上述发明目的,本发明还提供一种并行的垂直交叉网络数据采集系统,该系统包括:
采集模块,根据配置参数确定采集方式,若是普通URL列表采集方式,则根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式,则利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据;
更新模块,定时更新任务,对已下载的网页中第一层到当前层的所有网页进行扫描检查,当新下载的页面最后修改时间大于已下载的页面最后修改时间时,对该新下载的页面重新进行数据采集,更新网页数据记录。
进一步的,所述采集模块中:
当所述待下载网页为doc或者pdf格式的文本文件时,对文本文件的内容进行解析后下载其内容中的纯文本部分;若所述待下载网页为普通网页时,则直接下载全部HTML页面内容。
所述待下载网页为普通网页时,则直接下载全部HTML页面内容中:将所述普通网页链接到的所有网页作为Map阶段的标准输出,并将超级链接形成的列表写入分布式文件系统,然后启动一个新的Mapper将所述列表作为种子列表输入新的采集任务。
进一步的,所述采集模块中以所述关键字列表的对象属性进行检索,并将所述关键字列表中的对象名称作为过滤值对检索结果进行过滤处理,并将过滤处理后的检索结果作为初始网页列表进行下载,然后再将待下载网页中的元数据写入分布式数据库。
本发明的有益功效在于;
解决了传统以对象为采集单位的单机多线程网络爬虫采集的数据杂乱无章缺乏层次,采集过程不稳定、效率较低的问题,避掉了多线程技术的一些潜在风险和代价。
设计实现了基于Hadoop的爬虫系统,降低了多线程并行采集的潜在风险与代价,可以实现海量数据的并行采集。
实现了垂直交叉的采集模式及支持多格式文件采集,不仅能够采集普通网页,还能够对存在于网络中的复杂文本格式(例如,pdf,doc,docx类型文件)进行采集。以目标对象的属性为检索关键字,再通过对象关键字对检索结果进行过滤,从而可以对与目标对象有关的网页进行较为有层次地采集,这种层次结构对于数据挖掘领域中的文本挖掘任务具有重要的意义,它实际上是对目标网页实现了粗聚类,对于后续的文本挖掘任务提供了辅助信息。
基于Hadoop设计了网页更新策略,在采集过程中可以对已采集网页进行更新检查,若发现已采集的网页有更新则对该网页重新采集,以保持采集的网页是最新版本。
基于MapReduce的并行编程机制,即采集和更新均利用MapReduce自身的并行计算机制,实现在多节点同时采集或者更新网页,依赖ApacheHadoop这一支持数据密集型分布式应用程序,使得代码易于实现和理解,且能够很容易扩展的大规模集群中运行,实现更稳定、更高效的并行采集;HDFS和HBase两种存储形式的混合使用对采集的数据进行分别储存和管理,提高了数据读取和查询的效率,还可以对已经采集数据进行高效和复用和查询等操作。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1A是本发明的并行的垂直交叉网络数据采集方法流程图;
图1B是本发明的并行的垂直交叉网络数据采集系统示意图;
图2是本发明的数据采集及数据更新并行算法流程图;
图3是本发明的一实施例的关键字表1部分内容示意图;
图4是本发明的一实施例的关键字表2部分内容示意图;
图5是本发明的一实施例的垂直交叉采集数据目录示意图;
图6是本发明的一实施例的垂直交叉采集数据内容示意图;
图7是本发明的一实施例的采集数据目录展示示意图;
图8是本发明的一实施例的采集网页内容展示示意图;
图9是本发明的一实施例的网页更新内容展示示意图;
图10是现有技术中的广度优先搜索示意图。
具体实施方式
图1A是本发明的并行的垂直交叉网络数据采集方法流程图。如图1A所示,该方法包括:
S1,根据配置参数确定采集方式,若是普通URL列表采集方式,则根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式,则利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据;
S2,定时更新任务,对已下载的网页中第一层到当前层的所有网页进行扫描检查,当新下载的页面最后修改时间大于已下载的页面最后修改时间时,对该新下载的页面重新进行数据采集,更新网页数据记录。
进一步的,所述S1中:
当所述待下载网页为doc或者pdf格式的文本文件时,对文本文件的内容进行解析后下载其内容中的纯文本部分;若所述待下载网页为普通网页时,则直接下载全部HTML页面内容。
所述待下载网页为普通网页时,则直接下载全部HTML页面内容中:将所述普通网页链接到的所有网页作为Map阶段的标准输出,并将超级链接形成的列表写入分布式文件系统,然后启动一个新的Mapper将所述列表作为种子列表输入新的采集任务。
进一步的,所述S1中以所述关键字列表的对象属性进行检索,并将所述关键字列表中的对象名称作为过滤值对检索结果进行过滤处理,并将过滤处理后的检索结果作为初始网页列表进行下载,然后再将待下载网页中的元数据写入分布式数据库。
图1B是本发明的并行的垂直交叉网络数据采集系统示意图。如图1B所示,该系统包括:
采集模块100,根据配置参数确定采集方式,若是普通URL列表采集方式,则根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式,则利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据;
更新模块200,定时更新任务,对已下载的网页中第一层到当前层的所有网页进行扫描检查,当新下载的页面最后修改时间大于已下载的页面最后修改时间时,对该新下载的页面重新进行数据采集,更新网页数据记录。
进一步的,所述采集模块中:
当所述待下载网页为doc或者pdf格式的文本文件时,对文本文件的内容进行解析后下载其内容中的纯文本部分;若所述待下载网页为普通网页时,则直接下载全部HTML页面内容。
所述待下载网页为普通网页时,则直接下载全部HTML页面内容中:将所述普通网页链接到的所有网页作为Map阶段的标准输出,并将超级链接形成的列表写入分布式文件系统,然后启动一个新的Mapper将所述列表作为种子列表输入新的采集任务。
进一步的,所述采集模块中以所述关键字列表的对象属性进行检索,并将所述关键字列表中的对象名称作为过滤值对检索结果进行过滤处理,并将过滤处理后的检索结果作为初始网页列表进行下载,然后再将待下载网页中的元数据写入分布式数据库。
本发明拥有两套采集模式(URL列表模式和垂直交叉关键字列表模式)。其中,垂直交叉采集模式利用交叉关键字列表(交叉关键字列表共有两张关键字列表,以下简称为关键字表1和关键字表2)以及搜索引擎进行种子URL列表的构建。首先,利用多家搜索引擎同时对关键字表1中的关键字进行逐一检索,然后将搜索引擎返回的结果用关键字表2中的关键字进行过滤,将返回结果的网页内容中包含关键字表2中关键字的URL构建为种子列表进行采集。在本发明的垂直交叉采集模式下,关键字表1中的关键字既可以是对象也可以是对象的属性。当关键字表1中的关键字是对象的属性时,由于关键字表2的存在,只要关键字表2中的关键字是我们需要的对象,则可以实现目标网页的垂直采集。
本发明基于开源软件平台Hadoop,在其上利用Map/Reduce编程框架实现对网络中的文本数据进行采集。首先,系统触发后会根据用户设定的配置参数确定将采用的采集模式(分为普通URL列表模式,以及基于关键字检索的垂直交叉采集模式);确定是否使用更新策略;确定是否使用断点续传等功能。若使用垂直交叉采集模式,则系统会根据用户在配置系统时设定的交叉关键字列表(对象列表以及对象属性列表)对待下载URL列表进行初始化,生成种子队列。
然后,这个种子队列文件将作为Mapper类的输入启动Map/Reduce任务。具体地,对象属性作为检索值,对象名称作为过滤值,这样在实现垂直领域的信息采集的同时,还实现了初步交叉分类的功能。在数据采集的Map/Reduce任务中,系统将首先对待下载网络文本数据的元数据(包括URL,文件存放位置,页面最后修改时间等)写进分布式数据库HBase,以便采集完成后数据进行更加方便的管理。元数据信息写入完成后,正式开始数据的下载过程。当网络中的文本数据为doc或者pdf格式的文本文件时,系统将对其内容进行抽取和解析,下载文本文件中的纯文本部分;若文本数据来源于普通网页,则下载全部html代码,网页的所有文件都包含其中。
对于普通网页,因为页面中存在链接到其他网页的超级链接,因此,在采集数据时,通常情况需要将网页中的链接到的其他网页内容一起采集下来,采集的深度由一个用户设定的参数来控制。在本系统中,基于Map/Reduce变成框架也可以实现此功能。对于普通网页,提取当前页面所有超级链接作为Map阶段的标准输出,将超级链接形成的列表L写入分布式文件系统。之后,再启动一个新的Mapper将L作为种子列表输入新的采集任务,从而实现多层下载。对于doc和pdf格式的文本文件,由于其没有其他的超级链接,因此对这些文件不需要进行此操作。普通采集模式与垂直交叉采集模式的采集过程类似,只是在初始采集列表的生成上有所不同,普通采集模式由用户提供一个待下载的URL列表,系统直接将这个列表读入作为初始列表,不需要涉及对象列表以及对象属性列表的操作。
对于采集更新,若用户设定需要进行采集更新,则在采集任务启动时启动一个定时器。当定时器到时信号触发时,系统检查当前任务进度。若此时仍有采集任务进行,定时器将下一次Map/Reduce任务加入任务队列,等待进行更新操作。否则,则可以直接进行更新操作。在更新任务启动时,系统将对当前下载的位于所有深度的已经采集过的包含文本的页面以及文本文件进行逐一的扫描检查。当新检测的页面最后修改时间大于系统之前记录的元数据的页面最后修改时间时,则对该页面重新发送请求进行重采集,采集之后更新元数据记录,使之与最新采集的页面保持一致。在对当前下载的所有深度的页面都做完更新检查并且完成更新后,系统更新模块将定时下一次更新的时间,并且将数据采集任务加入任务队列,使得更新之后的下一个Map/Reduce任务为数据采集。
本发明共有两种不同的Map/Reduce任务,数据采集和数据更新,两种任务虽然完成的功能不同,但其并行化原理类似,均只包含Map过程。
数据采集及更新采取多轮Map过程,最大迭代轮数由参数下载深度控制。数据下载的每一个Job对当前深度的所有URL进行下载;数据更新的每一个Job对当前迭代轮中所有URL进行数据更新检查,并对有更新的网页进行下载。因此,在进入Map之前需要在HDFS上生成适用于当前深度的URL列表。
对于数据采集,在Map阶段,根据Map读入的URL地址进行数据采集,其中PDF文件和DOC文件需要进行解析,网页文件则直接进行下载。数据采集中,每一个URL对应一个输出数据文件,经过去除非法符号的URL地址作为数据文件的名称。同时,在这个阶段,还对当前网页中所有的超链接进行提取,作为下一层深度待下载的URL项,供其它数据下载Job使用。
对于网页更新,采取定时触发机制。在触发器被触发并且当前层数据下载Job成功完成时,开始进行从第一层到当前层的多个网页更新检查Job(每一层是一个Job)。在Map阶段,根据Map读入的已下载URL地址进行检查,若已记录的网页最后修改时间早于新获得的网页最后修改时间,则认为该网页在服务器端被更新,进行重新采集,其中PDF文件和DOC文件需要进行解析,网页文件则直接进行采集。
在更新结束后,要进行必要的采集记录一致性处理,对重新下载的URL最后修改时间进行必要地更新。
图2是本发明的数据采集及数据更新并行算法流程图。如图2所示,在MapReduce框架下对数据采集模块进行并行化与传统的将算法并行化的思路不同。数据采集无需对输入数据进行复杂的逻辑计算,只需根据输入的URL获取网页数据并进行保存即可。因为每一个URL都对应一个数据文件,因此数据采集和数据更新都无需Reduce过程进行排序归并。针对数据采集的特点,在这里详细说明数据采集以及数据更新的MapReduce部分。
对于数据采集,由于要实现逐层递进式的网页下载,因此我们将Map过程的标准输出设计成当前URL包含的所有超链接信息。这些信息十分重要,它们将作为下一层下载Job的输入URL列表内容。为了保存同样重要的数据内容文件,也就是当前网页内容,我们利用URL与数据内容能够组成单一映射的特点,在Map方法中直接对数据内容进行输出。
对于数据更新,对于数据内容的处理与数据采集一致,即直接对已更新的数据内容进行更新,Map过程的标准输出则是发生更新的URL以及其最新的最后修改时间,以便后续在MapReduce外部进行最后修改时间的一致性更新。
下面具体介绍本发明的一实施例以展示本发明的功能。首先,我们展示系统的垂直交叉采集功能;其次,我们展示系统的URL列表模式采集功能;最后,我们展示系统的网页更新功能。
首先,我们展示系统的垂直交叉采集功能:
我们以上海证券交易所904只股票作为对象,将一些证券行业术语作为对象的属性展示垂直交叉采集功能。
对象的属性作为关键字表1,对象名称作为关键字表2。部分关键字表1和关键字表2的内容如图3和图4所示:
垂直交叉采集参数如表1所示:
表1
本系统首先根据关键字表1中的关键字建立路径并将其作为搜索关键字用搜索引擎进行检索,之后将关键字列表2中的所有关键字作为过滤项,将返回结果中包含关键字表2中任一关键词的网页或者文本文件作为目标数据采集。为了便于展示实例,我们将所采集数据移至本地文件系统。所建立的数据目录如图5所示。
部分数据内容如下图结果展示如图6所示。
垂直交叉采集可以根据对象的属性在采集时实现对对象有层次结构地进行采集,有利于在其基础之上进行复杂的文本挖掘任务。
现在,我们展示本发明的URL列表模式采集功能:
数据源:用户输入的URL文件
数据示例说明:表2展示了报告中使用的测试URL列表。该列表用于基于URL列表的下载模式。该列表中从网页门类划分,包含了门户网站、公司主页、论坛以及不同类型的文本文件;从网页编码划分,包含了UTF-8,GBK以及GB2312等常用中文网页编码。
表2
参数设置如表3所示:
表3
在传统URL列表模式数据采集中,得到的已下载URL结果如图7所示。
部分数据文件如图8所示。
最后,我们以URL列表模式展示网页更新功能。所使用的测试数据与之前展示URL列表模式数据采集的数据一致,为了测试出网页更新的效果,我们人工地将初始URL列表的网页最后修改时间限定为0,这样当网页更新任务触发时,所有最后修改时间不为0的网页将会被更新。下载的网页按照其所处的下载层储存于HDFS根目录下的data目录下。若下载成功,则data目录下以URL命名的数据文件内容为该网页的HTML代码;若不成功,目录下数据文件内容为“getpagecontentfailure”。经过更新的网页在文件首行可见标记<!---updated---url地址>,未更新是标记为<!---original---url地址>。参数设置如表4:
表4
系统得到的部分更新数据文件如图9所示。
本发明参数说明:
-s:存储初始URL列表文件的路径及文件名(来自本地路径,非HDFS路径)。
-k:位于本地文件系统的搜索关键字文件,即关键字表1。
-p:位于本地文件系统的过滤关键字文件,即关键字表2。
-w:搜索宽度,搜索引擎返回的前搜索宽度项作为垂直交叉模式下载种子列表。
-m:下载模式,该参数的值若为site表示选用传统URL列表模式,该参数的值若为keyword表示选用垂直交叉模式。
-d:下载深度,下载任务的深度。初始种子列表的深度为1,以后逐层加1。
-r:下载目录根路径,该路径为HDFS下的绝对路径。数据下载模块的数据文件以及下载过程中产生的所有中间文件均位于该目录下。
-h:元数据表名称,设置元数据表名称,该表记录了网页ID,网页URL以及网页对应的HDFS中的文件名等元数据信息。该表为了提高后续访问和操作的效率。
-u:更新算法开关,该参数的值若为true,则开启对已下载的网页检查更新功能,否则不开启该功能。
-t:更新间隔,当更新算法开启时,该参数的值用来设定更新周期,以秒为单位。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (6)
1.一种并行的垂直交叉网络数据采集方法,其特征在于,该方法包括:
步骤1,根据配置参数确定采集方式,若是普通URL列表采集方式,则根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式,则利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据,其中以所述关键字列表的对象属性进行检索,并将所述关键字列表中的对象名称作为过滤值对检索结果进行过滤处理,并将过滤处理后的检索结果作为初始网页列表进行下载,然后再将待下载网页中的元数据写入分布式数据库;
步骤2,定时更新任务,对已下载的网页中第一层到当前层的所有网页的页面内容进行扫描检查,当新下载的页面的页面内容对应的最后修改时间大于已下载的页面的页面内容对应的最后修改时间时,对该新下载的页面重新进行数据采集更新网页数据记录。
2.如权利要求1所述的垂直交叉网络数据采集方法,其特征在于,所述步骤1中:
当所述待下载网页为doc或者pdf格式的文本文件时,对文本文件的内容进行解析后下载其内容中的纯文本部分;若所述待下载网页为普通网页时,则直接下载全部HTML页面内容。
3.如权利要求2所述的垂直交叉网络数据采集方法,其特征在于,所述待下载网页为普通网页时,则直接下载全部HTML页面内容,其中将所述普通网页链接到的所有网页作为Map阶段的标准输出,并将超级链接形成的列表写入分布式文件系统,然后启动一个新的Mapper将所述列表作为种子列表输入新的采集任务。
4.一种并行的垂直交叉网络数据采集系统,其特征在于,该系统包括:
采集模块,根据配置参数确定采集方式,若是普通URL列表采集方式,则根据URL列表直接下载待下载网页数据及其元数据,若是垂直交叉采集方式,则利用交叉关键字列表检索待下载页,并下载该网页数据及其元数据,其中以所述关键字列表的对象属性进行检索,并将所述关键字列表中的对象名称作为过滤值对检索结果进行过滤处理,并将过滤处理后的检索结果作为初始网页列表进行下载,然后再将待下载网页中的元数据写入分布式数据库;
更新模块,定时更新任务,对已下载的网页中第一层到当前层的所有网页的页面内容进行扫描检查,当新下载的页面的页面内容对应的最后修改时间大于已下载的页面的页面内容对应的最后修改时间时,对该新下载的页面重新进行数据采集,更新网页数据记录。
5.如权利要求4所述的垂直交叉网络数据采集系统,其特征在于,所述采集模块中:
当所述待下载网页为doc或者pdf格式的文本文件时,对文本文件的内容进行解析后下载其内容中的纯文本部分;若所述待下载网页为普通网页时,则直接下载全部HTML页面内容。
6.如权利要求5所述的垂直交叉网络数据采集系统,其特征在于,所述待下载网页为普通网页时,则直接下载全部HTML页面内容,其中将所述普通网页链接到的所有网页作为Map阶段的标准输出,并将超级链接形成的列表写入分布式文件系统,然后启动一个新的Mapper将所述列表作为种子列表输入新的采集任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310146080.7A CN103258017B (zh) | 2013-04-24 | 2013-04-24 | 一种并行的垂直交叉网络数据采集方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310146080.7A CN103258017B (zh) | 2013-04-24 | 2013-04-24 | 一种并行的垂直交叉网络数据采集方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103258017A CN103258017A (zh) | 2013-08-21 |
CN103258017B true CN103258017B (zh) | 2016-04-13 |
Family
ID=48961934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310146080.7A Active CN103258017B (zh) | 2013-04-24 | 2013-04-24 | 一种并行的垂直交叉网络数据采集方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103258017B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657399B (zh) * | 2014-01-03 | 2017-11-07 | 广西科技大学 | 网络爬虫控制方法 |
CN104182548B (zh) * | 2014-09-10 | 2017-09-26 | 北京国双科技有限公司 | 网页更新处理方法及装置 |
CN104376406B (zh) * | 2014-11-05 | 2019-04-16 | 上海计算机软件技术开发中心 | 一种基于大数据的企业创新资源管理与分析方法 |
CN104504006B (zh) * | 2014-12-11 | 2017-12-01 | 厦门市美亚柏科信息股份有限公司 | 对新闻客户端的数据采集及解析的方法及系统 |
CN105045838A (zh) * | 2015-07-01 | 2015-11-11 | 华东师范大学 | 基于分布式存储系统的网络爬虫系统 |
CN106874298A (zh) * | 2015-12-14 | 2017-06-20 | 北京国双科技有限公司 | 网页检测方法和装置 |
CN110020066B (zh) * | 2017-07-31 | 2021-09-07 | 北京国双科技有限公司 | 一种往爬虫平台注任务的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701324B1 (en) * | 1999-06-30 | 2004-03-02 | International Business Machines Corporation | Data collector for use in a scalable, distributed, asynchronous data collection mechanism |
CN102314463A (zh) * | 2010-07-07 | 2012-01-11 | 北京瑞信在线系统技术有限公司 | 分布式爬虫系统及其提取网页数据的方法 |
CN102937989A (zh) * | 2012-10-29 | 2013-02-20 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其系统 |
-
2013
- 2013-04-24 CN CN201310146080.7A patent/CN103258017B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701324B1 (en) * | 1999-06-30 | 2004-03-02 | International Business Machines Corporation | Data collector for use in a scalable, distributed, asynchronous data collection mechanism |
CN102314463A (zh) * | 2010-07-07 | 2012-01-11 | 北京瑞信在线系统技术有限公司 | 分布式爬虫系统及其提取网页数据的方法 |
CN102937989A (zh) * | 2012-10-29 | 2013-02-20 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103258017A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103258017B (zh) | 一种并行的垂直交叉网络数据采集方法及系统 | |
Cambazoglu et al. | Scalability challenges in web search engines | |
CN103475687B (zh) | 用于下载网站数据的分布式方法和系统 | |
Fan et al. | Distributed graph simulation: Impossibility and possibility | |
US20140059423A1 (en) | Display of Hypertext Documents Grouped According to Their Affinity | |
Choudhary et al. | Crawling rich internet applications: the state of the art | |
Agre et al. | Keyword focused web crawler | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
JP2012098934A (ja) | 文書管理システム、文書管理システムの制御方法、プログラム | |
US20090204575A1 (en) | Modular web crawling policies and metrics | |
CN113918793A (zh) | 一种多源科创资源数据采集方法 | |
CN116541427B (zh) | 数据查询方法、装置、设备及存储介质 | |
CN104765592A (zh) | 一种面向网页采集任务的插件管理方法及其装置 | |
CN113656673A (zh) | 面向广告投放的主从分布内容爬取机器人 | |
CN106156319A (zh) | 可伸缩的分布式的资源描述框架数据存储方法及装置 | |
CN103077196B (zh) | 一种从公网web网站到内网数据库的访问方法 | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
KR100756421B1 (ko) | 해외 과학기술 전자원문 수집/색인/추출 시스템 및 그 방법 | |
CN106649462B (zh) | 一种针对海量数据全文检索场景的实现方法 | |
Yang et al. | Incorporating site-level knowledge for incremental crawling of web forums: A list-wise strategy | |
Wang et al. | Anti-crawler strategy and distributed crawler based on hadoop | |
Valvag et al. | Cogset vs. hadoop: Measurements and analysis | |
CN109992707A (zh) | 一种数据爬取方法、装置、存储介质及服务器 | |
Shi et al. | Design and implementation of a scalable distributed web crawler based on Hadoop | |
JP5165717B2 (ja) | デッドリンク判定装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |