CN101404666A - 一种基于Web页无限层采集方法 - Google Patents
一种基于Web页无限层采集方法 Download PDFInfo
- Publication number
- CN101404666A CN101404666A CNA2008101520173A CN200810152017A CN101404666A CN 101404666 A CN101404666 A CN 101404666A CN A2008101520173 A CNA2008101520173 A CN A2008101520173A CN 200810152017 A CN200810152017 A CN 200810152017A CN 101404666 A CN101404666 A CN 101404666A
- Authority
- CN
- China
- Prior art keywords
- url
- web page
- page
- webpage
- collection
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种基于Web页无限层采集方法,包括下列步骤:(1)规范网页采集的入口页面地址StartURL;(2)对该页面上的每一个URL进行解析,若该URL是相对路径,利用入口地址StartURL补全,将其转换成绝对路径;(3)判断入口地址StartURL是否为该URL的上级,若是则启用下行链采集,继续向下扩展,若不是,则停止扩展;在采集和扩展过程中,对于每个URL,循环匹配取出页面中的文字,并查找页面上的链接,将链接上的文字以及链接所指向的网页中的文字取出并存储,如此遍历该网页的所有链接,进行无限层网页采集。利用本发明提供的网页采集方法,能够针对用户需求,进行多层次链接分析,提取用户所关心的内容,高效地实现网络信息采集。
Description
技术领域
本发明涉及一种网页采集方法。
背景技术
网络信息的采集通常是借助各种搜索引擎来完成的,一个普通商用搜索引擎由搜索器、索引器、检索器和用户接口等四部分构成。一般来说,搜索器就是一个称为Robot计算机程序的网络机器人,它从某一初始页面或站点的URL开始遍历互联网自动地发现网页信息,当进入某个超文本页面时,它利用HTML语言的标记结构来搜索信息和获取指向其他超文本的URL链接,通过一定的算法选择下一个要访问的站点继而转向另一个站点继续搜集信息。索引器的功能是理解搜索器所搜索的数据信息,从中抽取出索引项,建立用于表示数据文档以及生成数据库的索引库。检索器的功能是根据用户的查询在索引库中快速检出数据文档,依据相关度评价对检出的结果进行排序。用户接口的功能是输入用户的查询并显示检索器检出的查询结果。
从技术层面上来看,网页采集技术与搜索引擎采用的技术有着很多相似之处。但是从服务目的和方式来看,普通搜索引擎是面向所有互联网用户的,它力图满足所有用户对各种网络信息的搜索需要。当用户在使用普通搜索引擎的时候,一般是向它提供检索词,然后搜索引擎在其索引数据库中检出相应内容并返回给用户所需内容的链接。而网页采集则是面向用户的,它是为用户在一个类别内积累信息并最终形成知识而建立的。网页采集系统是一个实时抓取系统,在得到用户定义的模型后,直接到定义的模型网站上,将模型网站上的信息资源抓取后全部返回给用户而不仅仅是链接。
采集的目的是为了服务于用户,对于每个用户来说,他们并不关心整个Web上的数据。而只是其中的一小部分。事实上,这部分数据往往集中在很小的几个或者一个主题领域内。面向用户的网页采集恰恰可以满足这些用户的需求,并且,由于采集的页面数量较少,页面内容也更有针对性,所以能够更好的针对需要为用户提供服务。
网页采集技术中的网页采集,主要是指通过web页面之间的链接关系,从web上自动的获取页面信息,并且随着链接不断向所需要的web页面扩展的过程。
采集程序是从一个网页或多个网页出发,逐步遍历Web Server上的文件。采集程序首先解析网页的HTML代码,查找该页面内的超链接,然后通过递归和非递归两种方式来实现。
递归方式,是在一个方法中调用自己本身的程序方式。这种方式在遍历的工程中,在没有处理完一个网页对应的URL情况下处理该网页中某个URL。这种程序虽然简单,但是当一个URL本身的链接较多时,递归每次要将本次未完成的代码压进程序代码栈,这样程序在执行时要耗费大量计算机资源。另外这种程序不能使用多线程技术。因此在高效的采集程序中不采用此方式。
非递归方式,使用队列这种数据结构,当采集程序发现超链接后并不调用自己本身而是把超链接加入到等待队列中,当采集程序扫描完一个页面后,会访问队列中的下一个超链接地址。
发明内容
本发明的目的是,提供一种面向用户的非递归性网页采集方法,利用本发明提供的网页采集方法,能够针对用户需求,进行多层次链接分析,提取用户所关心的内容,高效地实现网络信息采集。
为此,本发明采用如下的技术方案:
一种基于Web页无限层采集方法,包括下列步骤:
(1)规范网页采集的入口页面地址StartURL;
(2)对该页面上的每一个URL进行解析,若该URL是相对路径,利用入口地址StartURL补全,将其转换成绝对路径;
(3)判断入口地址StartURL是否为该URL的上级,若是则启用下行链采集,继续向下扩展,若不是,则停止扩展;在采集和扩展过程中,对于每个URL,循环匹配取出页面中的文字,并查找页面上的链接,将链接上的文字以及链接所指向的网页中的文字取出并存储,如此遍历该网页的所有链接,进行无限层网页采集。
作为优选实施方式,上述采集方法中,步骤(2)和步骤(3)采用多线程的方法进行网页采集:建立用于在采集过程中存放URL的四个队列:等待队列、处理队列、错误队列、完成队列,每个队列都保存着同一处理状态的URL;在等待队列中,URL等待被采集程序处理,新发现的URL也被加入到这个队列中;当开始采集处理时,URL被送到处理队列中;如果在解析网页时出错,URL将被送到错误队列中;如果解析网页没有出错,URL将被送到完成队列中。
本发明的有益效果:与普通采集比较,基于Web页无限层采集与跨层存储方法,其查准率和查全率易于保证,页面分析速度、分析层次更为清晰。在采集过程中无须对整个Web进行遍历,(独创入口层管理模式)只需选择唯一入口即可对网站相关的页面进行自动访问分析,一方面回避了传统信息采集系统单一,另一方面又为实现一次采集多次利用的存储结构奠定基础,能够大大节省网络带宽减少服务器负载。
附图说明
图1本发明的网络信息采集的总框架图;
图2本发明的网页采集流程图。
具体实施方式
本发明根据给定的网站的入口地址作为遍历的起始网址。以Web页采集模型为基准,遍历该Web页中符合此模型的所有链接,并且随着链接不断向所需要的Web页面扩展的过程。区分这些链接所指向的Web页特征,根据Web页采集模型过滤噪音,进而进行多层次链接分析,提取用户所关心的内容。
开始进行网络信息采集前,先给定网站入口地址,给定的网站的入口地址作为遍历的起始网址。当采集程序遇到某个网页时,根据采集模型分析网页,将相关链接加入到链接队列中;同时分析页面内容,将该网页放入页面库中。程序框架如图1。
采集算法如下:
输入:入口地址;
输出:用户所需内容
步骤1:(1)根据输入的入口地址,遍历该Web页中符合此模型的所有链接。判断链接地址是否为下行链,若是,则启用下行链采集模型,继续向下扩展;若不是,则停止扩展。
步骤2:采集程序将得到的网页交给链接分析器和内容分析器;
步骤3:对于内容分析器而言,根据采集模型定义的规则,循环匹配取出页面中的文字。对于链接分析器而言,首先查找页面上的链接,将链接上的文字以及链接所指向的网页中的文字取出。
本发明在网页采集过程中用到了四个队列,分别是等待队列、处理队列、错误队列、完成队列。他们每个队列都保存着同一处理状态的URL。在等待队列中,URL等待被Spider程序处理,新发现的URL也被加入到这个队列中;当Spider程序开始处理时,URL被送到处理队列中;如果在解析网页时出错,URL将被送到错误队列中,该队列中的URL不能被移入其他队列中。如果解析网页没有出错,URL将被送到完成队列中,该队列中的URL不能被移入其它队列中。程序流程图如图2。
在等待队列中,URL等待被Spider程序处理,新发现的URL也被加入到这个队列中;当Spider程序开始处理时,URL被送到处理队列中;如果在解析网页时出错,URL将被送到错误队列中,该队列中的URL不能被移入其他队列中。如果解析网页没有出错,URL将被送到完成队列中,该队列中的URL不能被移入其它队列中。程序流程图如图2。
实践证明,多线程机制,能提高Spider的效率。多线程使Spider在处理网页时,可请求、等待其它网页。在编写Spider程序时通常的做法是为每一个请求创建一个线程,但为每个请求创建一个新线程的开销很大;而且在请求很多时,在创建和销毁线程上花费的时间和消耗的系统资源要比花在处理网页上的时间和资源更多。我们可用线程池来解决这个问题。在线程池中,线程的数量已给定,线程池中线程的数量要合适,太少、太多都会降低Spider的效率。线程池将给这些线程分配任务。当线程完成一个任务时,另一个任务将分配给它。这是因为线程的数量一定,不能再创建新的线程。本发明使用线程池的方法如下:(1)创建一个大小为n的线程池pool;(2)检查等待对列中是否还有未处理的网页,如果没有则结束,如果有则转(3);(3)创建一个处理网页的工作线程Myspiderworker;检查线程池中是否有空闲的线程,如果有,利用线程池执行Myspiderworker,转(2),如果没有,Myspiderworker等待直到线程池中有空闲的线程。
页面采集到本地后需要对其进行分析以提取用户所关心的内容。链接的提取是页面分析中的一个重要任务,必须保证完整、准确地从页面中抽取出所有链接及相关数据,包括链接目的URL(统一资源标识符)、链接的说明文字等。由于HTML语法包含了多种链接方式并仍在不断扩充之中,在HTML语法分析器中对各种链接形式都必须加以识别和处理,并对一个页面上所有链接进行分类。
参考国内外已有的研究结果,将网页的链接分成以下6类,主要以URL为判别标准:
(1)DOWNWARD(下行链)。目标页面是当前页面的下级页面,通常是为当前页面提供更详细的信息,可以看作是当前页面的附属子页面。典型运用在主页、索引页面中。
(2)UPWARD(上行链)。与DOWNWARD链相反,目标页面是当前页面的上级,也可能是跨了好几级。许多页面都提供这样的链接让浏览者方便地返回上一级索引或直接返回主页。
(3)HORIZONTAL(水平链)。同一目录下的页面间的链接被定义为水平链。有时WWW站点内部的层次不是非常清晰,有些页面都不加区分地放在同一目录下,无法直接区分出页面的上下级关系。此时只有将这些链接统统当作水平链,留待以后系统掌握了页面及站点的更多信息后再加以区别。
(4)CROSSWISE(交叉链)。在前面三种链接关系中,两个页面都处在站点目录中同一条路径上。当两者分别位于两个不同的分枝上时,就无法比较它们的上下级,称之为交叉链。一般说来这类链接只表明两个页面有关,没有明确的含义。
(5)OUTWARD(外向链)。链接指向其它站点中的页面。此类链接所表示的页面关系更加模糊,它指向的页面内容可能与当前页面毫无关联,在站点分析过程中此类链接所起的作用不大。
(6)FRAME(框架链)。此类链接比较特殊,从外观上看,目标页面实际上嵌入到当前页面中,完全可以看作当前页面的一部分,因而它所表示的关系是最紧密的。它另一个特殊的方面在于该类链接的判定不是根据URL,而是在语法分析构成中抽取链接时就已经确定了。
本发明基于上述6种链接的类型,提出的网页链接判定逻辑的基本步骤如下:
(1)规范入口地址StartURL,形如:http://A.B.C/.../D。
(2)确定一级域名,即B.C。
(3)对该入口页面采集模型上每一个URL进行分析。
(4)若该URL是相对路径,用入口地址StartURL补全。
(8)判断入口地址StartURL是否为该URL的上级,若是则判定为DOWNWARD(下行链),启用下行链采集模型,并可继续向下扩展;若不是,则停止扩展。
我们浏览Web上的网页时,会发现并不是所有的内容都是我们所需要的。对于一个网页来说,上面有图片,有版权信息,有新闻等等。但总体来说通常包含两部分内容,一部分内容体现的是网页的主题信息,比如一张新闻网页中的新闻部分,我们称之为“主题”内容,它是该网页的核心内容,也是读者最感兴趣的内容;另一部分则是与主题内容无关的导航条、广告信息、版权信息以及调查问卷等内容,我们称之为“噪音”通常分布在“主题”周围,有时也夹杂在主题内容中间。噪音内容一般与“主题”内容不相关,通常,他们链接到的网页也与“主题”内容不相关。网页中的噪音内容不仅给Web上基于网页内容的应用系统带来困难,如网页分类系统、网页信息抽取系统;也给基于网页超链指向的应用系统带来困难,如网页评级系统。因此,如何快速准确地识别并清除网页内的噪音是提高Web应用程序处理结果准确性的一项关键技术,我们将该项技术称之为网页净化。首先,网页净化后,没有了噪音内容的干扰,Web应用程序可以以网页的主题内容为处理对象,从而提高处理结果的准确性。其次,网页净化可以显著简化网页内标签结构的复杂性并减小网页的大小,从而节省后续处理过程的时间和空间开销。因此,网页净化已成为Web信息系统预处理环节中的一个必不可少的工作。
在网页净化中为了区别一个网页中的信息是噪声还是主题内容,首要的工作时将整个网页划分成多个不同的块。当前存在多种网页分块方法,比较流行的有基于DOM的划分方法,还有基于位置的划分方法。将网页划分为多个块之后,接下来的工作便是衡量的每个块的重要程度,不重要的便是噪声。当前也存在多种衡量网页块价值的方法,大都基于以下考虑:对于一个网站来说,噪声块通常有共同的内容和表现风格。本发明将多个网页之间共同的部分定义为模板,当网页根据一些规则划分成多个小块之后,根据定义好的模板来识别重复出现的网页块,并计算出现的次数。多次重复出现的网页块的自然为噪声块。首先根据“TABLE″标签将一个网页分成几个内容块;然后根据网页块的簇的大小来判断是否是噪声。
Claims (2)
1.一种基于Web页无限层采集方法,包括下列步骤:
(1)规范网页采集的入口页面地址StartURL;
(2)对该页面上的每一个URL进行解析,若该URL是相对路径,利用入口地址StartURL补全,将其转换成绝对路径;
(3)判断入口地址StartURL是否为该URL的上级,若是则启用下行链采集,继续向下扩展,若不是,则停止扩展;在采集和扩展过程中,对于每个URL,循环匹配取出页面中的文字,并查找页面上的链接,将链接上的文字以及链接所指向的网页中的文字取出并存储,如此遍历该网页的所有链接,进行无限层网页采集。
2.根据权利要求1所述的基于Web页无限层采集方法,其特征在于,步骤(2)和步骤(3)采用多线程的方法进行网页采集:建立用于在采集过程中存放URL的四个队列:等待队列、处理队列、错误队列、完成队列,每个队列都保存着同一处理状态的URL;在等待队列中,URL等待被采集程序处理,新发现的URL也被加入到这个队列中;当开始采集处理时,URL被送到处理队列中;如果在解析网页时出错,URL将被送到错误队列中;如果解析网页没有出错,URL将被送到完成队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101520173A CN101404666A (zh) | 2008-10-06 | 2008-10-06 | 一种基于Web页无限层采集方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101520173A CN101404666A (zh) | 2008-10-06 | 2008-10-06 | 一种基于Web页无限层采集方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101404666A true CN101404666A (zh) | 2009-04-08 |
Family
ID=40538532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101520173A Pending CN101404666A (zh) | 2008-10-06 | 2008-10-06 | 一种基于Web页无限层采集方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101404666A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101909079A (zh) * | 2010-07-15 | 2010-12-08 | 北京迈朗世讯科技有限公司 | 一种骨干网链路中用户上网行为数据采集方法和系统 |
CN102054028A (zh) * | 2010-12-10 | 2011-05-11 | 黄斌 | 具备页面渲染功能的网络爬虫系统及其实现方法 |
CN102184227A (zh) * | 2011-05-10 | 2011-09-14 | 北京邮电大学 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
CN102937989A (zh) * | 2012-10-29 | 2013-02-20 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其系统 |
CN102945270A (zh) * | 2012-10-30 | 2013-02-27 | 北京腾逸科技发展有限公司 | 并行化分布式网络舆情数据管理方法及系统 |
CN101957816B (zh) * | 2009-07-13 | 2013-03-20 | 上海华燕置业发展有限公司 | 基于多页面比较的网页元数据自动抽取方法和系统 |
CN103124273A (zh) * | 2011-11-17 | 2013-05-29 | 阿里巴巴集团控股有限公司 | 基于用户行为分析的路径倒排表建立、匹配方法及系统 |
CN103838791A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种网络机器人方法 |
CN103838786A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种Web数据自动采集的方法 |
CN105426407A (zh) * | 2015-11-02 | 2016-03-23 | 浪潮软件集团有限公司 | 一种基于内容分析的web数据采集方法 |
CN106503016A (zh) * | 2015-09-07 | 2017-03-15 | 北京国双科技有限公司 | 抓取页面信息的方法及装置 |
CN107918674A (zh) * | 2017-12-12 | 2018-04-17 | 携程旅游网络技术(上海)有限公司 | 网页数据的采集方法及其系统、存储介质、电子设备 |
CN113935293A (zh) * | 2021-12-16 | 2022-01-14 | 湖南四方天箭信息科技有限公司 | 地址拆分和补全方法、装置、计算机设备和存储介质 |
-
2008
- 2008-10-06 CN CNA2008101520173A patent/CN101404666A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957816B (zh) * | 2009-07-13 | 2013-03-20 | 上海华燕置业发展有限公司 | 基于多页面比较的网页元数据自动抽取方法和系统 |
CN101909079A (zh) * | 2010-07-15 | 2010-12-08 | 北京迈朗世讯科技有限公司 | 一种骨干网链路中用户上网行为数据采集方法和系统 |
CN101909079B (zh) * | 2010-07-15 | 2013-04-24 | 北京迈朗世讯科技有限公司 | 一种骨干网链路中用户上网行为数据采集方法和系统 |
CN102054028A (zh) * | 2010-12-10 | 2011-05-11 | 黄斌 | 具备页面渲染功能的网络爬虫系统及其实现方法 |
CN102054028B (zh) * | 2010-12-10 | 2013-12-25 | 黄斌 | 一种网络爬虫系统实现页面渲染功能的方法 |
CN102184227B (zh) * | 2011-05-10 | 2013-05-08 | 北京邮电大学 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
CN102184227A (zh) * | 2011-05-10 | 2011-09-14 | 北京邮电大学 | 一种面向web服务的通用爬虫引擎系统及其工作方法 |
CN103124273B (zh) * | 2011-11-17 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 基于用户行为分析的路径倒排表建立、匹配方法及系统 |
CN103124273A (zh) * | 2011-11-17 | 2013-05-29 | 阿里巴巴集团控股有限公司 | 基于用户行为分析的路径倒排表建立、匹配方法及系统 |
CN102937989B (zh) * | 2012-10-29 | 2016-06-22 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其系统 |
CN102937989A (zh) * | 2012-10-29 | 2013-02-20 | 北京腾逸科技发展有限公司 | 并行化分布式互联网数据抓取方法及其系统 |
CN102945270A (zh) * | 2012-10-30 | 2013-02-27 | 北京腾逸科技发展有限公司 | 并行化分布式网络舆情数据管理方法及系统 |
CN102945270B (zh) * | 2012-10-30 | 2016-01-13 | 北京腾逸科技发展有限公司 | 并行化分布式网络舆情数据管理方法及系统 |
CN103838786A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种Web数据自动采集的方法 |
CN103838791A (zh) * | 2012-11-27 | 2014-06-04 | 大连灵动科技发展有限公司 | 一种网络机器人方法 |
CN106503016A (zh) * | 2015-09-07 | 2017-03-15 | 北京国双科技有限公司 | 抓取页面信息的方法及装置 |
CN106503016B (zh) * | 2015-09-07 | 2020-05-19 | 北京国双科技有限公司 | 抓取页面信息的方法及装置 |
CN105426407A (zh) * | 2015-11-02 | 2016-03-23 | 浪潮软件集团有限公司 | 一种基于内容分析的web数据采集方法 |
CN107918674A (zh) * | 2017-12-12 | 2018-04-17 | 携程旅游网络技术(上海)有限公司 | 网页数据的采集方法及其系统、存储介质、电子设备 |
CN113935293A (zh) * | 2021-12-16 | 2022-01-14 | 湖南四方天箭信息科技有限公司 | 地址拆分和补全方法、装置、计算机设备和存储介质 |
CN113935293B (zh) * | 2021-12-16 | 2022-03-22 | 湖南四方天箭信息科技有限公司 | 地址拆分和补全方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101404666A (zh) | 一种基于Web页无限层采集方法 | |
CN106709052B (zh) | 一种基于关键词的主题网络爬虫设计方法 | |
CN102760151B (zh) | 开源软件获取与搜索系统的实现方法 | |
CN109543086B (zh) | 一种面向多数据源的网络数据采集与展示方法 | |
CN100507920C (zh) | 一种基于用户行为信息的搜索引擎检索结果重排序方法 | |
Diligenti et al. | Focused Crawling Using Context Graphs. | |
CN1963816A (zh) | 一种搜索引擎性能评价的自动化处理方法 | |
CN101957816B (zh) | 基于多页面比较的网页元数据自动抽取方法和系统 | |
US7882099B2 (en) | System and method for focused re-crawling of web sites | |
CN103365839B (zh) | 一种搜索引擎的推荐搜索方法和装置 | |
CN108052632B (zh) | 一种网络信息获取方法、系统及企业信息搜索系统 | |
CN106126648B (zh) | 一种基于重做日志的分布式商品信息爬虫方法 | |
CN102054028B (zh) | 一种网络爬虫系统实现页面渲染功能的方法 | |
US20090070366A1 (en) | Method and system for web document clustering | |
CN102930059A (zh) | 一种聚焦爬虫的设计方法 | |
CN102054004A (zh) | 一种网页推荐方法和装置 | |
CN100507918C (zh) | 一种网络关键资源页面的自动定位方法 | |
CN102890681A (zh) | 一种生成网页结构模板的方法及系统 | |
CN102591992A (zh) | 基于垂直搜索和聚焦爬虫技术的网页分类识别系统及方法 | |
CN101908071A (zh) | 一种提高搜索引擎搜索效率的方法及其系统 | |
CN103942268B (zh) | 搜索与应用相结合的方法、设备以及应用接口 | |
CN101630330A (zh) | 一种网页分类方法 | |
Bin et al. | Web mining research | |
CN103226609A (zh) | 一种web聚焦搜索系统的搜索方法 | |
CN101388025A (zh) | 一种基于Pagerank的语义网对象排序方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090408 |