文档库 最新最全的文档下载
当前位置:文档库 › 网络爬虫的优化策略探略

网络爬虫的优化策略探略

网络爬虫的优化策略探略
网络爬虫的优化策略探略

收稿日期:2011-08-15

作者简介:李志义(1968-),男,副教授,硕士,研究方向:搜索引擎、电子商务网站开发等,发表论文20余篇,出版专著1部。

#理论探索#

网络爬虫的优化策略探略

李志义

(华南师范大学经济与管理学院,广东广州510631)

1摘 要2网络爬虫对网页的抓取与优化策略直接影响到网页采集的广度、深度,以及网页预处理的数量和搜索引擎的质量。搜索引擎的设计应在充分考虑网页遍历策略的同时,还应加强对网络爬虫优化策略的研究。本文从主题、优先采集、不重复采集、网页重访、分布式抓取等方面提出了网络爬虫的五大优化策略,对网络爬虫的设计有一定的指导和启迪作用。

1关键词2网络爬虫;优化策略;搜索引擎

DOI:10.3969/j.issn.1008-0821.2011.10.0071中图分类号2TP391

1文献标识码2A

1文章编号21008-0821(2011)10-0031-05

Discussion on the Optimization Strategy of Web Crawlers

Li Zhiyi

(School of Economic and Management,South China Normal University,Guangzhou 510631,China)

1Abstract 2Web crawlers for collecting web pages and its optimization strateg ies affected directly on the breadth,dep th of Web crawling,and also on web-page preprocessing and the search en g ine quali ty.Search engine should be designed taking full account of web traversal strategy and the web crawler opti mization strategy.In this paper ,the theme collection s trategy,priori ty acquisi tion strategy,not to repeat the acqui sition strategy,websi te re -visi t strategies,distributed capture strategy for the five major op timization strategies are proposed.These studies should be the guidance and inspiration to design of network crawlers.

1Key words 2web crawler;optimization strategy;search engine

网络爬虫的实质是一种用于从互联网上下载Web 信息的计算机程序,它以Web 页之间的相互链接为路径,依照一定的遍历策略试图爬行互联网中的每个链接,从中抓取必要的信息,并将其转存到本地存储设备上,以便进行信息的预处理。

网络爬虫的特点非常突出,主要表现为:(1)程序的

强壮性非常高,且具备超强的执行力;

(2)自动性和智能

性强,体现在分析Web 页和利用链接进行爬行等方面;(3)能够自动将Web 信息实施简单的存储操作等等[1]。与此同时,一个高性能的网络爬虫还需要从可伸缩性、分布式、/礼貌0爬行以及可定制性等方面进行完善和改进。本文着重探讨网络爬虫的优化策略。

1 网络爬虫的遍历策略

Google 、百度等通用搜索引擎抓取Web 页的数量通常

以亿为单位来测算,如此众多的网页文件自然涉及到网络爬虫遍历策略的问题。也就是说,通过何种方式或策略才能使网络爬虫尽可能地遍历所有Web 页,从而尽可能地扩大Web 信息的抓取覆盖面,这一直是搜索引擎研究的重点。从目前来看,通用网络爬虫主要采纳了3种基本策略)))广度优先策略和深度优先策略和最佳优先搜索策略[2],这些遍历算法虽然人们早已熟知,却非常适合于网络爬虫对网页的自动采集和获取。

111 广度优先遍历策略

广度优先遍历策略[3],可理解为一种基于网络层次分析的遍历策略,是将网络划分成若干层次,其中,种子站点是处于结构的最顶层。在遍历时,需要处理Web 页之间的抓取优先级的问题,一般规定层次结构中层次越高,优先级也就越高;同一层次中,从左到右优先级依次降低。因此,如果只用一个网络爬虫进行遍历操作,那么就按不

同层次之间先高后低的次序,以及同层次之间先左后右的次序进行。当然,也可以将多个网络爬虫设计成分布式的结构,它们分别负责其中一层或几层Web站点的遍历,这样不但技术实现的难度不高,而且可以较好地避免重复遍历Web页的现象。

112深度优先策略

深度优先遍历类似于树的前序遍历。它将遍历的侧重点放在网络爬虫爬行的深度上,往往为了抓取更多的Web 网页,允许网络爬虫访问站点中某一超链接相关的所有链接。从互联网的结构看,Web页之间通过数量不等的超链接相互连接,形成一个彼此关联、庞大复杂的有向图。所以,按照深度优先的原则,网络爬虫通常需要多次爬行一些Web页,即出现重复爬行现象。如何规避此类问题也就成为修正深度优先策略的重中之重,在实践中,一般会建立一个爬行路径优选算法来简化网络爬虫的行走路线,同时需要依照具体情况确保一个合适的遍历深度。

对比以上两种遍历策略,广度优先策略更适合大规模Web信息的搜集,可充分发挥网络爬虫程序算法的功效,适合水平型搜索引擎的信息抓取;而宽度优先策略一般适用于垂直搜索引擎的信息搜集。但在实际应用中,二者可相互嵌套。

113最佳优先搜索策略

它是按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为有用的网页。因此,这种算法可能导致在爬虫抓取路径上的很多相关网页被忽略,因为最佳优先策略是一种局部最优搜索算法。它需要将最佳优先结合具体的应用进行改进,以跳出局部最优点[4]。闭环调整可以将无关网页数量降低30%~90%。

2网络爬虫的优化策略

在网络爬虫抓取Web信息的过程中,无论是宽度优先策略还是广度优先策略,都可能产生重复抓取的现象,也难以处理好Web页的优先级顺序和对相同Web站点的不定期抓取等问题,因此,网络爬虫的设计还要进行适当、合理的改进,提升并优化网络爬虫的抓取策略。本文就此对现有网络爬虫技术进行了总结并提出以下5种主要的优化策略。

211不重复采集策略

不重复采集策略的实质是通过Hash函数存储网络爬虫的遍历轨迹,并规定某一Web页被遍历过,则在哈希表中的相应槽位填充1,否则填充0。也就是说,此类方式用1或0的值表示Web页是否被爬虫抓取过。在具体实现过程中,哈希函数起到至关重要的作用,目前一般使用MD5()函数,将网页文件的地址即URL字符串转换为128位散列值。

21111MD5算法

对MD5算法可简要叙述为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后将生成1个128位散列值。

在该算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。即信息的字节长度MOD512 =448

因此,信息的字节长度将被扩展至N*512+448,N为1个正整数。填充的方法是:在信息的后面填充1个1和足够多的0,直到满足上面的条件时才停止用0对信息的字节长度进行填充。然后,在此基础上附加1个以64位二进制表示的填充前信息长度,即将原始信息的字节长填充为64位长度并添加进来。经过这两步的处理,长度恰好是512的整数倍。即信息字节长度=N*512+448+64=(N+ 1)*512

接着设置MD5中的4个32位被称作链接变量的整数参数,分别为:A=0x01234567,B=0x89abcdef,C= 0xfedcba98,D=0x76543210。

当设置好这4个链接变量后,就可进行算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。21112哈希表

MD5就是将任意长度的消息转换成128位固定长度的消息摘要的函数,显然,MD5()函数产生的值很大,为2128个不同的数,需要的内存空间巨大。因此,在实际处理中还要将MD5()函数的值进行模运算映射到哈希表中。其公式可设为:

MD5(URL)MOD N

其中,URL为抓取的地址,N为存储哈希表的位长。

通过该式的转换,可使输入的URL地址被映射到大小为N的哈希表的某个位上,以便确定其地址是否被抓取过。

21113重复抓取的解决策略

为了解决重复搜集网页的问题,可以定义两个数据库: /未爬行的URL库0和/已爬行的URL库0。/未爬行的URL库0存储待访问队列的URL,/已爬行的URL库0存储已遍历过的URL。对于已访问过的、未访问过的URL利用MD5(URL)函数分别作MD5摘要,以获取其惟一标识,并建立两个集合。新解析出的URL,首先根据已经访问过

的URL 的MD5集合判断是否已抓取过,如没有被抓取,则放入/未爬行的URL 数据库0中,否则放入/已爬行的URL 库0中。其详细流程图如图1

所示。

图1 重复抓取的解决思路

采用上述方法可保证搜集的网页中所有的URL 都不同,但由于域名和IP 的对应存在着多种复杂的关系,如一对一、一对多、多对一、多对多等,可能导致即便URL 不同,也可能指向相同的物理网页的情形,从而重复采集。这是当网页采集累积到一定规模和数量时所出现的现象。要解决此类重复采集网页的问题,就要找出指向同一物理网页的URL 的多个域名和IP 地址,并将其分组列出,以便在以后的采集时只在具有相同的URL 中选择其中一个URL 进行抓取。

212 优先采集策略

对搜索引擎而言,要搜索互联网上所有的网页几乎不可能,即使全球知名的搜索引擎Google 也只能搜索整个In -ternet 网页的30%左右。其中的原因主要有两方面,一是抓取技术的瓶颈,网络爬虫无法遍历所有的网页;二是存储技术和处理技术的问题。因此,网络爬虫在抓取网页时,尽量先采集重要的网页,即采用网页优先抓取策略。

优先采集策略的基本思想是给予重要程度、等级较高的Web 页以较高的抓取优先级,即Web 页越重要,则越应优先抓取。其实质上是一种使网络爬虫在一定条件下较快地锁定互联网中被用户普遍关注的重要信息资源的方法。而实现该策略的前提是正确评测Web 页的重要程度[5],目前评测的主要指标有:PageRank 值、平均链接深度等。21211 PageRank 值

PageRank [6],即网页级别,它是2001年9月Google 创始人之一拉里#佩奇(Larry Page)申请的专利技术,是Google 排名运算法则的一部分,也是Google 用于用来标识网页等级或重要性的一种方法。

其基本思想是[7]:如果网页T 存在一个指向网页A 的链接,则表明T 的所有者认为A 比较重要,从而把T 的一部分重要性得分赋予A 。这个重要性得分值为:PR (T )/C(T )。其中PR (T )为T 的PageRank 值,C(T )为T 的外部链接总数,网页A 的PageRank 值为一系列类似于T 的页面重要性得分值的累加。

PR 分值的计算公式为:PR (A )=(1-d)+d

E n

i=1

PR(ti)/C(ti )

其中PR(A )表示网页A 的PR 分值;d 为阻尼系数,通常取值为0185;PR(ti)表示外部链接网站ti 本身的PR 分值;C(ti)表示该外部链接站点所拥有的外部链接数量。

将以上公式展开得:PR(A )=(1-d)+d(PR(t 1)/C(t 1)+,+PR (tn)/C(tn))。

21212 平均链接深度

平均链接深度,通俗地说就是网页的层次,表示在一个种子站点集合中,每个种子站点如果存在一条链路到达该网页,那么其目录的深度或层次就是该网页的链接深度。实际上在广度优先遍历策略中已采用了这种思想。它也是衡量网页重要性的一个指标,因为距离种子站点越近,说明被访问的机会越多,离种子站点越远,重要性越低。21213 综合指标

目前评价网页重要度的指标很多,从人工搜集的经验看,以下几个指标综合起来常可以作为衡量网页重要性的重要参考依据。

(1)网页或父网页的入度即网页被链接的次数,入度越大被访问、被其他网页引用次数可能越多;

(2)网页的镜像度,镜像度越高越热门,也显得重要;(3)网页的目录深度,目录浅易于被访问。

以上指标综合起来可表示网页的权重,下面不妨用函数式子近似地表示网页的权重:

W(P)=F(Indegree(P),Indegree(Father -P),Nirror (P),D-i rectoryDepth(P))

其中,W (P)表示网页P 的权重,Indegree (P)、Inde -gree(Father -P)分别为网页P 、网页P 的父网页的入度函数,Nirror (P)为网页P 的镜像度函数,DirectoryDep th (P)为网页P 的目录深度函数。

213 网页重访策略

由于网站信息在动态变化、更新和修改,且不同的站

点在更新的时间上也不同,如新闻类的网站几乎时时都在更新。因此,需要一种策略来解决信息的及时抓取问题,这种策略就是网页重访策略。

网络爬虫对Web页的重访策略的重点在于如何设置网络爬虫的重访频率。一般来说,可采用如下几种方法:

(1)依据Web站点的更新频率确定重访频率

此法符合实际情况,能够更有效地管理和利用网络爬虫。例如,门户网站通常每天要不断地更新信息和添加新的信息,重访的频率则以天或小时为周期进行网页的重访。

(2)不关心Web站点的更新频率问题,而是间隔一段时间重访已被抓取的网页。其弊端是重复抓取的概率大,容易造成不必要的资源浪费。

(3)根据搜索引擎开发商对网页的主观评价,提供个性化的服务

网页的重访需要搜索引擎开发商对主要的站点进行网页更新频率的主观评价,可以根据需求提供个性化的服务。214主题搜集策略

从近年搜索引擎的研究趋向看,面向主题性信息资源的垂直搜索引擎或者主题搜索引擎已成为搜索引擎研究的热点,搜索的指向性越来越强,并赢得了相关领域的专家和学者的普遍关注。而构筑主题搜索引擎的关键在于制作一种与之相适应的特殊网络爬虫即聚焦爬虫(Focused Crawler),使同一领域内的Web信息资源得以有效聚集。

通常聚焦爬虫在遍历Web时多采用最佳优先策略,即/按照事先给出的主题,分析超链接和已经下载的网页内容,预测下一个待抓取的URL以及当前网页的主题相关度,保证尽可能多地爬行、下载与主题相关的网页,尽可能少地下载无关网页。[8]0该策略能够有效解决通用网络爬虫随爬行深度的不断加大而带来的相关性逐渐降低问题,而且搜索针对性也高得多。

主题搜集策略的核心思想是:Web上与同一主题相关的网页趋向于互相链接,主题爬虫可从待爬行URL队列中选择最有希望的链接进行爬行,其目标是保持在主题相关的网页的周围,而不偏离主题[9]。主题爬行技术的关键点在于主题相关性的算法,目前可采用的算法归于两类: 21411基于URL链接的算法

比较著名的算法有PageRank和HITS两种。HITS[10],即Hyperlink-Induced topic Search,由Kleinberg于1999年首次提出,并认为Web页的重要性与所要检索的主题紧密相关,从而在很大程度上避免了经典PageRank算法由于不考虑主题相关性而出现的主题飘移现象。

该算法的基本思路为:对于权威Web页而言,其重要程度的高低决定于与其链接的中心Web页的数量,而且需要是质量较好的中心Web页;对于中心Web页,其重要程度的高低决定于被其链接的权威Web页的数量,而且需要是质量较好的权威Web页。这样两种Web页之间存在某种程度的/共生依赖0关系,因此,HITS算法又/为每个Web页定义两个度量值:权威权重(authority weight)和中心权重(hub weigh t),并通过这两个权重来判定该Web页对特定主题的重要性。[11]0而且某一Web页的权威权重等于所有指向它的Web页的中心权重;某一Web页的中心权重等于所有被它指向的Web页的权威权重。

HITS吸收了PageRank的优点,并将权威Web页和中心Web页的概念纳入运算过程中,因此能够更关注于主题相关性,也更利于主题Web页的搜集。

21412基于Web页内容的算法

在计算主题相关性时,可借鉴空间向量模型计算文本相似度的思想和理论[12],即将向量引入主题相关性评价的过程之中,并且利用相关度数值的大小体现Web页的主题与给定主题的相关性大小,以下是该方法的具体算法流程:

(1)主题提取:对所搜集到的网页进行分析处理操作,从中提取可以表示网页主题的关键词,同时计算其在Web 页中出现的频率。

(2)主题描述:将所提取的关键词信息做加权处理,并将其表示的主题转化为向量的形式,即为该网页主题的特征向量;当然也需要把给定的主题转换成特征向量的形式。

(3)主题调整:依据给定主题的向量形式对Web页的关键词做进一步的调整和优化,以期更准确地表达其主题的内涵。

(4)主题相关性计算:将两个向量代入文本相似度计算公式,如夹角余弦值公式。

向量空间模型[3]将特征向量(t1,t2,,,t n)视为由文本集D中彼此独立的索引项构成,并以该向量表示文本和用户查询请求。同时,将权重W ij(w1j,w2j,,,w nj)的值赋给表征索引项在文本中的重要程度的特征项t i,此时就会形成一个n维坐标系,其中,t1,t2,,,t n是坐标系的坐标轴, w1j,w2j,,,w nj是对应的坐标值,即构造了一个向量空间,而空间的点则由文本集D映射得来。那么,文本D j和查询请求Q i可以分别表示为n维向量D j=(w1j,w2j,,,w nj)和Q k=(w k1,w k2,,,w kn),此时的D j与Q i匹配也就转化为向量空间里的定量化匹配问题。

该模型中主要通过相似函数计算上述两个向量的相似度,而且相似函数需要达到简单且容易实现的要求。迄今为止,相关领域的专家已经研究并实践了多种计算方法,比如向量内积、Jaccard相似函数和夹角余弦值等,其中夹

角余弦值法是最常用的一种。

sim(Q k,D j)=

E n

i=1

(w ki#w ij)

E n

i=1

(w ki)2#E n i=1(w ij)2

得出Web页与给定主题的相关度。

主题相关性分析:比较相关度的值与事先设定的相关度阀值之间的大小,如果前者与后者的差值是大于或等于零的数,则说明Web页与给定主题相关,并将该Web页转存到页面数据库中,否则放弃该Web页。这里,在大于等于零的情况下,差值越大表明Web页与给定主题的相关性越强。

此外,还有一系列分析和评价网页主题相关性的方法,如基于领域概念定制的方法、基于本体的方法[13]、基于遗传算法的方法、基于网络日志分析的方法、基于叙词表的方法等。

215分布式抓取策略

实施分布式抓取策略[14]的核心是在增加协同工作的爬虫数量的同时,科学合理地分配每个爬虫的任务,尽量避免不同的爬虫做相同的Web信息抓取。一般通过两种方法来分配抓取任务,一是按照Web站点所对应的IP地址划分任务,一个爬虫只需遍历某一组IP地址所包含Web页即可;另一种方法是依据Web站点的域名动态分配爬行任务,每个爬虫完成某个或某些域名段内Web信息的搜集。

3结束语

网络爬虫的网页采集与优化策略直接影响到网页抓取的广度、深度,以及网页预处理的工作量和搜索引擎的质量。因此,搜索引擎的设计应在充分考虑网页遍历策略的同时,还应加强对网络爬虫优化策略的研究。本文从优先采集、不重复采集、主题、网页重访、分布式抓取等方面提出了网络爬虫的五大优化策略,对网络爬虫的设计应有所帮助和启迪。但网络爬虫优化策略的研究任重道远,比如网络爬虫还面临互联网中动态网页的抓取即Deep Web爬虫的策略问题。Deep Web爬虫搜集内容的基本策略[15]是透过Web站点对外展示的查询接口,向相关后台数据库提交查询表单,待数据库响应并返回相应的内容后即可通过一定的方法将网页内容下载在本地。查询接口与表单的识别及处理是Deep Web爬虫设计的重心所在。

同时,由于网络爬虫爬行的重复性,如何将web的动态规律与先前搜索的统计结果相结合,以提高全价值计算的准确性[16],是一个值得研究的问题。降低网络爬虫在搜索过程中的计算复杂性,也有待进一步研究。目前有关网络爬虫优化策略方面的研究论文还少,应加大力度开始这方面的研究,促进搜索引擎产品的改善和优化。随着各种搜索引擎算法的改进,网络爬虫的优化也必须顺应其变化,不断提出新的优化策略和优化方法。

参考文献

[1]周德懋,李舟军.高性能网络爬虫:研究综述[J].计算机科

学,2009,(8):26-29.

[2]孙立伟,等.网络爬虫技术的研究[J].电脑知识与技术,

2010,(15):4112-4113.

[3]周立柱,林玲.聚焦爬虫技术研究综述[J].计算机应用,

2005,25(9):1965-1969.

[4]QIN J L,Z HO U YL,CHA U M.Buil ding domain specific web collec-

tions for scientific digi tal libraries:a meta search enhanced focused cra wling method[A].Proceedings of the4th ACM/IEEE-CS joint conference on Digi tal li braries[C].2004. 6.

[5]KRISHNA B,GEORGEA M.When experts agree:using nonaffi li ated

experts to rank popular topics:proc.of the10th International World Wi de Web Conference[C].[s1l1]:[s1n1],2001.

[6]HAVELIWALA T H.Topic)sens iti ve PageRank:proc.of the11th

Internati onal World Wide Web Conference[C].[s1l1]:[s1n1], 2002.

[7]王冬,等.基于PageRank的页面排序改进算法[J].计算机工

程与设计,2008,(11):5921-5923.

[8]刘金红,陆余良.主题网络爬虫研究综述[J].计算机应用研

究,2007,24(10):26-29,47.

[9]陈竹敏.面向垂直搜索引擎的主题爬虫技术研究[D]:[博士

论文].山东大学,2008:10.

[10]Kleinberg J.Authoritati ve s ources i n a hyperlinked envi ronment[J].

Journal of the ACM,1999,46(5):604-632.

[11]郭鸿.一种基于文本内容的HITS改进算法[J].计算机系统

应用,2009,(9):38-40,131.

[12]M1R1Henz inge.Hyperlink analysis for the Web[J].IEEE Internet

Computing,Jan/Feb,2001,5(1):45-50.

[13]杨贞,等.基于本体的主题爬虫的设计与实现[J].科技情

报开发与经济,2008,(2):73-75.

[14]姚树宇,赵少东.一种使用分布式技术的搜索引擎[J].计

算机应用与软件,2005,22(10):127-129.

[15]Yang Shengyuan.A focused crawler wi th ontology-s upported websi te

models for information agents[C].Advances in Grid and Pervasive Computing,2010:522-532.

[16]UDDIN M Z,LEE J J,KIM T S.Independent shape c omponent-

based human activity recognition via Hidden Markov Model[J].Ap-plied Intelligence,2010,33(2):193-206.

网络爬虫工作原理

网络爬虫工作原理 1 聚焦爬虫工作原理及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1) 对抓取目标的描述或定义; (2) 对网页或数据的分析与过滤; (3) 对URL的搜索策略。 抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。 2 抓取目标描述 现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。 基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为: (1)预先给定的初始抓取种子样本; (2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等; (3)通过用户行为确定的抓取目标样例,分为: a) 用户浏览过程中显示标注的抓取样本; b) 通过用户日志挖掘得到访问模式及相关样本。 其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。现有的聚焦爬虫对抓取目标的描述或定义可以分为基于目标网页特征,基于目标数据模式和基于领域概念三种。 基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。具体的方法根据种子样本的获取方式可以分为:(1)预先给定的初始抓取种子样本;(2)预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;(3)通过用户行为确定的抓取目标样例。其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。 基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合一定的模式,或者可以转化或映射为目标数据模式。

网络爬虫技术(新)

网络爬虫技术 网络机器人 1.概念: 它们是Web上独自运行的软件程序,它们不断地筛选数据,做出自己的决定,能够使用Web获取文本或者进行搜索查询,按部就班地完成各自的任务。 2.分类: 购物机器人、聊天机器人、搜索机器人(网络爬虫)等。 搜索引擎 1.概念: 从网络上获得网站网页资料,能够建立数据库并提供查询的系统。 2.分类(按工作原理): 全文搜索引擎、分类目录。 1> 全文搜索引擎数据库是依靠网络爬虫通过网络上的各种链接自动获取大量 网页信息内容,并按一定的规则分析整理形成的。(百度、Google) 2> 分类目录:按目录分类的网站链接列表而已,通过人工的方式收集整理网 站资料形成的数据库。(国内的搜狐) 网络爬虫 1.概念: 网络爬虫也叫网络蜘蛛,它是一个按照一定的规则自动提取网页程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是把网页中的相关数据保存下来,可以成为搜索引擎。 搜索引擎使用网络爬虫寻找网络内容,网络上的HTML文档使用超链接连接了起来,就像织成了一张网,网络爬虫也叫网络蜘蛛,顺着这张网爬行,每到一个网页就用抓取程序将这个网页抓下来,将内容抽取出来,同时抽取超链接,作为进一步爬行的线索。网络爬虫总是要从某个起点开始爬,这个起点叫做种子,你可以告诉它,也可以到一些网址列表网站上获取。

现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。 基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为: (1)预先给定的初始抓取种子样本; (2)预先给定的网页分类目录和与分类目录对应的种子样本,如Y ahoo!分类结构等; (3)通过用户行为确定的抓取目标样例,分为: a) 用户浏览过程中显示标注的抓取样本; b) 通过用户日志挖掘得到访问模式及相关样本。 其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。 一些算法的介绍 1> 网页分析算法

改进的BP神经网络算法(C语言源码)

#include "stdio.h" #include "stdlib.h" #include "time.h" #include "math.h" /********************************************* inpoints 为输入神经元个数,可改变 outpoints为输出神经元个数 defaultpoints为隐层神经元个数 datagrough为样本数据个数 ********************************************** ******以下数据定义可以修改*****/ #define A 0 #define a 1 #define b 1 #define c 1 #define ALFA 0.85 #define BETA 0.2 //学习率0~1 #define Total 20000 #define inpoints 9 #define outpoints 5 #define defaultpoints 28 #define datagrough 44 #define forecastdata 4 /**********定义所需变量********/ double InpointData[datagrough][inpoints],OutpointData[datagrough][outpoints]; /* 输入输出数据*/ double InpointData_MAX[inpoints],InpointData_MIN[inpoints]; /* 每个因素最大数据*/ double OutpointData_MAX[outpoints],OutpointData_MIN[outpoints]; /* 每个因素最小数据*/ double w[defaultpoints][inpoints],limen[defaultpoints],v[outpoints][defaultpoints]; /* 连接权值、阈值*/ double dlta_w[defaultpoints][inpoints],dlta_limen[defaultpoints],dlta_v[outpoints][defaultpoints]; /* 连接权、阈值修正值*/ double defaultOutpoint[defaultpoints],Outpoint_dp[outpoints],Outpoint_ep[datagrough]; /**************************读数据文件******************************/ void ReadData() { FILE *fp1,*fp2; int i,j; if((fp1=fopen("D:\\data\\训练输入.txt","r"))==NULL) {

网络爬虫论文

网络爬虫 摘要随着互联网的日益壮大,搜索引擎技术飞速发展。搜索引擎已成为人们在浩瀚的网络世界中获取信息必不可少的工具,利用何种策略有效访问网络资源成为专业搜索引擎中网络爬虫研究的主要问题。文章介绍了搜索引擎的分类及其工作原理.阐述了网络爬虫技术的搜索策略,对新一代搜索引擎的发展趋势进行了展望。 关键词网络爬虫;策略;搜索引擎 概念: 网络爬虫也叫网络蜘蛛,它是一个按照一定的规则自动提取网页程序,其会自动的通过网络抓取互联网上的网页,这种技术一般可能用来检查你的站点上所有的链接是否是都是有效的。当然,更为高级的技术是把网页中的相关数据保存下来,可以成为搜索引擎。 搜索引擎使用网络爬虫寻找网络内容,网络上的HTML文档使用超链接连接了起来,就像织成了一张网,网络爬虫也叫网络蜘蛛,顺着这张网爬行,每到一个网页就用抓取程序将这个网页抓下来,将内容抽取出来,同时抽取超链接,作为进一步爬行的线索。网络爬虫总是要从某个起点开始爬,这个起点叫做种子,你可以告诉它,也可以到一些网址列表网站上获取。 网络爬虫的构成及分类 网络爬虫又被称为做网络蜘蛛、网络机器人,主要用于网络资源的收集工作。在进行网络舆情分析时,首要获取舆情信息内容,这就需要用到网络爬虫(蜘蛛程序)这个工具,它是一个能自动提取网页内容的程序,通过搜索引擎从互联网上爬取网页地址并抓取相应的网页内容,是搜索引擎(Search Engine)的重要组成部分。 一个典型的网络爬虫主要组成部分如下: 1. URL 链接库,主要用于存放爬取网页链接。 2. 文档内容模块,主要用于存取从Web 中下载的网页内容。 3. 文档解析模块,用于解析下载文档中的网页内容,如解析PDF,Word,HTML 等。 4. 存储文档的元数据以及内容的库。 5. 规范化URL 模块,用于把URL 转成标准的格式。 6. URL 过滤器,主要用于过滤掉不需要的URL。 上述模块的设计与实现,主要是确定爬取的内容以及爬去的范围。最简单的例子是从一个已知的站点抓取一些网页,这个爬虫用少量代码就可以完成。然而在实际互联网应用中,可能会碰到爬去大量内容需求,就需要设计一个较为复杂的爬虫,这个爬虫就是N个应用的组成,并且难点是基于分布式的。 网络爬虫的工作原理 传统网路爬虫的工作原理是,首先选择初始URL,并获得初始网页的域名或IP 地址,然后在抓取网页时,不断从当前页面上获取新的URL 放入候选队列,直到满足停止条件。聚焦爬虫(主题驱动爬虫)不同于传统爬虫,其工作流程比较复杂,首先需要过滤掉跟主题不相关的链接,只保留有用的链接并将其放入候选URL 队列。然后,根据搜索策略从候选队列中选择下一个要抓取的网页链接,并重复上述过程,直到满足终止条件为止。与此同时,将所有爬取的网页内容保存起来,并进行过滤、分析、建立索引等以便进行性检索和查询。总体来讲,网络爬虫主要有如下两个阶段: 第一阶段,URL 库初始化然后开始爬取。

网络爬虫的设计与实现(完整版)

网络爬虫的设计与实现

摘要 网络爬虫将下载的网页和收集到的网页信息存储在本地数据库中以供搜索引擎使用,它是一个专门从万维网上下载网页并分析网页的程序。随着网络的快速发展,人们对搜索引擎的要求也越来越高,而网络爬虫的效率直接影响着搜索引擎的质量。 本课题研究的是通用网络爬虫,它是从一个或若干个初始网页的链接开始进而得到一个链接队列。伴随着网页的抓取又不断从抓取到的网页中抽取新链接放入到链接队列中,直到爬虫系统满足了停止条件。该课题主要涉及到了缓冲池技术,多线程技术,套接字技术,HTTP和SSL协议,正则表达式,Linux网络编程技术,PHP+Apache的使用等相关技术。 本说明书叙述的网络爬虫是以Linux C实现的,加以PHP语言编写的界面使用户更加方面的操作,利用Shell脚本和Apache服务器使得爬虫系统和界面很好的结合在一起。 关键词:网络爬虫缓冲池正则表达式 SSL协议多线程

目次 1 引言 (1) 1.1 课题选题背景 (1) 1.2 课题研究的意义 (2) 2 需求分析 (3) 2.1 功能需求分析 (3) 2.2 系统性能分析 (4) 3 系统设计 (5) 3.1 系统工作流程图 (5) 3.2 数据结构设计 (6) 3.3 系统各功能流程图 (7) 4 系统实现 (10) 4.1 相关技术分析 (10) 4.2 系统功能模块的实现 (11) 5 测试与结果 (17) 结论 (23) 致谢............................................................................................ 错误!未定义书签。参考文献. (24)

神经网络学习算法的过拟合问题及解决方法

神经网络学习算法的过拟合问题及解决方法 李俭川 秦国军 温熙森 胡茑庆 (国防科技大学机电工程与自动化学院 长沙,410073) 摘要 针对反向传播学习算法及其改进算法中出现的过拟合问题,探讨了三种解决方法:调整法、提前停止法和隐层节点自生成法,并用实例对三种方法进行了验证和比较。其中,调整法和提前停 止法针对一个较大的网络可以解决过拟合问题,而隐层节点自生成法的提出既能避免过拟合问 题,又能获得最少神经元网络结构。这三种方法有效地解决了在神经网络学习过程中的过拟合问 题,提高了网络的适应性。它们不仅适合于函数逼近,而且可以推广到其他网络结构等应用领域。关键词 神经网络 计算机 BP 算法 过拟合 均方误差 自生成 故障诊断 中图分类号 T H 165.3神经网络已经在模式分类、机器视觉、机器听觉、智能计算、自动控制、故障诊断、信息处理、地震勘探、通信、雷达和声纳等领域有着十分广泛的应用前景,并随着计算机技术和信号处理技术的发展而发展。应用神经网络必须解决两个问题:模型和算法。现有的神经网络模型已达上百种[1] ,应用最多的是Hopfield 神经网络、多层感知器、自组织神经网络、概率神经网络以及它们的改进型。自Rumellhart D E,H inton 和Williams 提出误差反向传播算法(即BP 算法),解决了神经网络在引入隐层节点后的学习(或训练)问题后,已经发展了许多的改进学习算法[1],如快速下降法、共轭梯度法、一维搜索法及Lev enberg -Mar quardt 法等,其收敛速度很快,能满足实时性要求,但也存在着一些问题。1 学习算法及其过拟合问题 BP 算法及其改进算法是目前应用最广泛的学习算法,尽管不能证明这类算法能象单层感知器一样收敛,但是对许多问题的解决是成功的[2]。实际上,BP 算法是把一组样本的输入输出问题,变为一个非线性优化问题,它使用了优化技术中最普通的一种梯度下降法,用迭代运算求解权值并相应于学习记忆问题,加入隐层节点可使优化问题的可调参数增加,这样可得到更精确的解。要应用学习算法对网络进行训练,首先需要确定网络的结构,即输入、输出层神经元数目和隐层数及其神经元数目。 如何适宜地选取隐含层神经元的数目还没有确定的规律可以指导,但是,隐含层神经元数目是否合适对整个网络是否能够正常工作具有重要的甚至是决定性的意义。隐含层神经元数第22卷第4期2002年12月 振动、测试与诊断Jo ur nal of Vibr ation,M easur em ent &Diag no sis V o l.22No.4 D ec.2002 国家自然科学基金资助项目(编号:59775025)。 收稿日期:2001-07-09;修改稿收到日期:2001-12-03。

网络爬虫知识

网络爬虫 1.工作原理 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。基本步骤: 1)人工给定一个URL作为入口,从这里开始爬取。 2)用运行队列和完成队列来保存不同状态的链接。 3)线程从运行队列读取队首URL,如果存在,则继续执行,反之则停止爬取。 4)每处理完一个URL,将其放入完成队列,防止重复访问。 5)每次抓取网页之后分析其中的URL(URL是字符串形式,功能类似指针),将经过过滤的合法链接写入运行队列,等待提取。 6)重复步骤 3)、4)、5) 2.关键技术 1.对抓取目标的描述或定义 2.对网页或数据的分析与过滤 3.对URL的搜索策略

3.网页搜索策略 1.广度优先 广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL 在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。 2.深度优先 即从起始网页开始,选择一个URL,进入,分析这个网页中的URL,选择一个再进入。如此一个链接一个链接地深入追踪下去,处理完一条路线之后再处理下一条路线。该算法在设置抓取深度时很容易导致爬虫的陷入(trapped)问题,同时每深入一层,网页价值和PageRank都会相应地有所下降。这暗示了重要网页通常距离种子较近,而过度深入抓取到的网页却价值很低,所以目前常见的是广度优先和最佳优先方法,很少使用深度优先策略。 3.最佳优先 最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。将在第4节中结合网页分析算法作具体的讨论。研究表明,这样的闭环调整可以将无关网页数量降低30%~90%。 4.网页分析算法 1.网络拓扑 基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对象(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。 a)网页粒度的分析算法

定向网络爬虫-开题报告

山东科技大学 本科毕业设计(论文)开题报告 题目网络爬虫 定向爬取?脚本之家?文本信息 学院名称信息科学与工程学院 专业班级计算机科学与技术2012级2班 学生姓名包志英 学号 2 指导教师赵中英 填表时间:二0一六年三月二十八日

下,并不能很稳定的工作,内存消耗随着程序的运行而不断增大,直到达到jvm 分配的上限而崩溃。很多时候,你只能做个权衡,每个webclient使用若干次后就把它回收,然后重新启动一个,这非常影响性能。Rhino对于javascript的支持并不好,实际使用中,会发现各种Exception,很多时候会导致无法渲染出想要的结果,这个htmlunit的又一大缺陷。随着版本的更新,能够渐次解决一些问题,但是好的程序员,还是应该自己读源码来尝试解决问题。 Phantomjs相比于htmlunit,对于js的支持更接近真实的浏览器,但是并发性能差,通过java的exec调用系统命令来启动,更加降低了性能。 此外主流的浏览器都提供了相应的抓取支持,selenium可谓是一个集大成者,包含了上述的所有组件,以WebDriver的形式,适配各种爬虫组件,你可以用它操控浏览器自动抓取,当然,并发和性能的问题依然存在。 爬虫开发的主要问题是性能和反封锁。很多时候,采用高并发高频率抓取数据是可行的,前提是目标站点没有采用任何反爬措施(访问频率限制、防火墙、验证码……);更多时候,有价值的信息,一定伴随着严格的反爬措施,一旦ip 被封,什么组件都没戏了。你不得不维护一个代理IP池来解决这个问题,当然,这也带来了代理ip稳定性和速度的问题,这些问题都是无法回避的问题,我们需要针对具体的情况,采用对应的措施,以最大限度的完成爬虫爬取任务。 目前,爬虫的需求呈爆炸式增长的趋势,这是当前各种互联网创新和大数据时代的新常态。火车和八爪鱼等团队看到了这一点,并率先开发了相对完备的爬虫产品,很多用户都在使用,但是更多的用户希望直接把爬虫抓取任务外包出去,因为他们不懂技术,工具的使用需要逾越技术的鸿沟,大部分用户并没有这个逾越鸿沟的打算。我相信像猪八戒这样的技术外包平台会活的越来越好,我也相信各个技术门类会不断聚集,形成相对独立的社区,P2P的社区平台将提供爬虫开发者和爬虫需求者更加通畅的交流渠道。 目前,淘宝等平台上出现很多爬虫服务商,如,这种定制开发的服务,增加了服务商的成本,服务往往是一次性的,满足了一个用户的需求,然而具有相似需求的用户,却很难有机会找到这个服务商,这就是为什么我们需要爬虫信息交流的平台。 我有意建立这样的平台,不管是微博、微信公众号、文章,还是政府门户的

防采集与反爬虫常见的策略以及解决思路

https://www.wendangku.net/doc/ff18904593.html, 防采集与反爬虫常见的策略以及解决思路 打从有采集这件事情开始 就有防采集的诞生 大仙爬虫从业十年 见过各种防采集策略 今天,我们就一起来吹吹牛B 说说这些年遇到的各种防采集策略 1、限制IP单位时间访问次数还有频率 背景:没有哪个常人一秒钟内能访问相同网站N次(不管是不是同一个网页) 解决办法:一般遇到这种情况我们就放缓采集频率,不管你写代码添加Sleep,或者在我们八爪鱼里面设置间隔时间都可以解决 进化1:有些高级点的防采集策略,他甚至监控到每个请求的频率,如果一直处于同一个频率,比如一秒一次,他也是会封。 解决办法:这种情况一般就需要我们在采集间隔里面加上随机数,每次访问的频率相对随机。 进化2:有些更残忍的防采集策略,他甚至会监控每IP每天或每时段请求网页的数量。 因为他可以通过数据分析,知道大体上他真实的用户一般最多会访问他多少网页,如果超过,他也照样封。

https://www.wendangku.net/doc/ff18904593.html, 解决办法:这种情况也就只有用多IP或者多服务器来解决了,虚拟出许多不同的终端在访问,平摊访问资源。八爪鱼在这块也提供了代理IP池套餐与旗舰版云服务器集群来保障。 2、验证码 背景:验证码天生就是一个识别你到底是人还是机器的神器

https://www.wendangku.net/doc/ff18904593.html, 解决办法: 这一招是被用烂的一招,现在普通的验证码,即使加了混淆,都可以通过图像识别技术 给破解了,所以市面就多了好多诡异的验证码,最经典的,应该算是12306的验证码 了吧。但是再复杂的验证码,包括那些中文成语,中文加减乘除之类的,都是有破解之法。因为这世上还有打码平台在,就是一种人工帮你输入验证码的平台。

网络爬虫

网络爬虫 1.什么是爬虫 2.网络爬虫工具 3.网页搜索策略 4.信息获取 1 . 什么是网络爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合一定的模式,或者可以转化或映射为目标数据模式。 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 《把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络爬虫就可以用这个原理把互联网上所有的网页都抓取下来。下面大体介绍主题爬虫的工作原理。》

2 . 网络爬虫工具 1.Heritrix ——是一个开源,可扩展的web爬虫项目。Heritrix是一个爬虫框架,可加入一些可互换的组件。 2.WebSPHINX ——是一个Java类包和Web爬虫的交互式开发环境。Web爬虫是可以自动浏览与处理Web页面的程序。 3.WebLech——是一个功能强大的Web站点下载与镜像工具。它支持按功能需求来下载web站点并能够尽可能模仿标准Web浏览器的行为。WebLech有一个功能控制台并采用多线程操作。 4.Arale ——主要为个人使用而设计,而没有像其它爬虫一样是关注于页面索引。 5.Jspider——是一个完全可配置和定制的Web Spider引擎.你可以利用它来检查网站的错误,网站内外部链接检查,分析网站的结构 6.Spindle——是一个构建在Lucene工具包(是一个基于Java 的全文信息检索工具包)之上的Web索引/搜索工具. 7.Arachnid(蛛形纲动物)——是一个基于Java的网络爬虫框架. https://www.wendangku.net/doc/ff18904593.html,RM ——LARM能够为Jakarta Lucene搜索引擎框架的用户提供一个纯Java的搜索解决方案。。 9.JoBo——是一个用于下载整个Web站点的简单工具。它本质是一个Web Spider。它的主要优势是能够自动填充form。 10.snoics-reptile——是用纯Java开发的,用来进行网站镜像抓取的工具,

网络爬虫技术的概述与研究

网络爬虫技术的概述与研究 摘要 网络爬虫,又被称为网页蜘蛛,网络机器人,随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎 (Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google 等,作为一个辅助人们检索信息的工具成为用户访问web的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性。为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。本文将对网络爬虫技术及其原理进行简单的介绍,并且给出实例。 关键词 网络爬虫聚焦爬虫网页抓取搜索策略 URL

一、网络爬虫的简介 1、URL 在介绍网络爬虫之前,先引入URL的相关知识。URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。通俗地说,URL 是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL的格式由三部分组成: ·第一部分是协议(或称为服务方式)。 ·第二部分是存有该资源的主机IP地址(有时也包括端口号)。 ·第三部分是主机资源的具体地址,如目录和文件名等。 第一部分和第二部分用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。 用URL表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。有时可以省略目录和文件名,但“/”符号不能省略。例如file://https://www.wendangku.net/doc/ff18904593.html,/pub/files/foobar.txt 爬虫最主要的处理对象就是URL,它根据URL地址取得所需要的文件内容,然后对它进行进一步的处理。 2、传统爬虫与聚焦爬虫 网络爬虫是一个自动提取网页的程序,它为搜索引擎从web上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。搜索引擎是基于传统爬虫技术建立的,但其存在着一定的局限性,例如:(1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。 (2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。 (3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。 (4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。 为了解决以上问题,定向抓取网页的聚焦爬虫应运而生。 聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取URL的队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。 二、网络爬虫的工作原理 在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要

网络爬虫基本原理

网络爬虫基本原理 网络爬虫根据需求的不同分为不同种类: 1. 一种是爬取网页链接,通过url链接得到这个html页面中指定的链接,把这 些链接存储起来,再依次以这些链接为源,再次爬取链接指向html页面中的链接……如此层层递归下去,常用的方法是广度优先或者深度优先,根据爬取层次需求不同而选择不同的方法达到最优效果,爬虫的效率优化是一个关键。搜索引擎的第一个步骤就是通过爬虫得到需要索引的链接或数据,存放于数据库,然后对这些数据建立索引,然后定义查询语句,解析查询语句并利用检索器对数据库里的数据进行检索。 2. 一种是爬取数据信息,如文本信息、图片信息等,有时需要做数据分析,通 过某种手段来获取数据样本以供后续分析,常用的方法是爬虫获取指定数据样本或利用现有的公共数据库。本文的微博爬虫和新闻数据爬取都属于第二种类,根据自定义搜索关键字爬取微博信息数据。 3. 对于网络爬虫原理,其实并不复杂。基本思路是:由关键字指定的url把所 有相关的html页面全抓下来(html即为字符串),然后解析html文本(通常是正则表达式或者现成工具包如jsoup),提取微博文本信息,然后把文本信息存储起来。 重点在于对html页面源码结构的分析,不同的html需要不同的解析方法;还有就是长时间爬取可能对IP有影响,有时需要获取代理IP,甚至需要伪装浏览器爬取。(主要是针对像新浪等这些具有反扒功能的网站,新闻网站一般不会有这样的情况)。 对于微博,通常情况下是必须登录才能看到微博信息数据(比如腾讯微博),但是有的微博有搜索机制,在非登录的情况下可以直接通过搜索话题来查找相关信息(如新浪微博、网易微博)。考虑到某些反爬虫机制,如果一个账号总是爬取信息可能会有些影响(比如被封号),所以本文采用的爬虫都是非登录、直接进入微博搜索页面爬取。这里关键是初始url地址。 网络爬虫是搜索引擎抓取系统的重要组成部分。爬虫的主要目的是是将互联网上的网页下载到本地形成一个活互联网内容的镜像备份。这篇博客主要对爬虫及抓取系统进行一个简单的概述。 一、网络爬虫的基本结构及工作流程 通用的网络爬虫的框架如图所示:

搜索引擎蜘蛛采用什么抓取策略

搜索引擎蜘蛛采用什么抓取策略 搜索引擎蜘蛛简称爬虫,它的主要目的是抓取并下载互联网的网页到本地,同时与切词器、索引器一起共同对网页内容进行分词处理,建立索引数据库,促使最终形成用户查询的结果。即使对于商业搜索引擎来说,想要抓取互联网的所有网页也是一件很困难的事情,百度为什么没有Google强大?首先百度对于互联网上信息的抓取量与Google是无法相比的;其次对于爬虫的抓取速度和抓取效率也跟不上Google,这些不是说解决就能解决的,一些技术上的问题很可能会很长时间都无法获得解决。 虽然搜索引擎很难抓取到互联网上的所有网页,但是这也是它必然的目标,搜索引擎会尽量增加抓取数量。那么搜索引擎抓取采用的策略都有什么呢? 目前主要流行的策略有四个:宽度优先遍历策略、Partial PageRank策略、OPIC策略策略、大站优先策略。 一、宽度优先遍历策略 如图所示,宽度优先遍历策略就是将下载完成的网页中发现的链接逐一直接加入待抓取URL,这种方法没有评级网页的重要性,只是机械性地将新下载的网页中URL提取追加入待抓取URL。这种策略属于搜索引擎早期采用的抓取策略,效果很好,以后的新策略也都以这个为基准的。 上图遍历抓取路径:A-B-C-D-E-F G H I 二、Partial PageRank策略 Partial PageRank策略借鉴了PageRank算法的思想,对于已经下载的网页,连同待抓取URL队列中的URL,形成网页集合,计算每个页面的PageRank值,计算完之后,将待抓取URL 队列中的URL按照PageRank值的大小排列,并按照该顺序抓取页面。 通常搜索引擎会采取每当新下载网页达到一个N值后,就将所有下载过的网页计算一个新的PageRank(非完全PageRank值),然后将待抓取URL跟这个进行重新排序。这种方法的争议很大,有人说比宽度优先遍历策略的效果:也有人说这样与PageRank的完整值差别很大,依托这种值的排序不准确。 三、OPIC策略 OPIC策略更像是Partial PageRank策略进行的改进。OPIC策略与Partial PageRank策略大体结构上相同,类似与PageRank评级的网页重要性,每个网页都会有一个10分,然后分别传递给网页上的链接,最后10分清空。通过网页获得的分值高低,评级一个网页的重要性,优先下载获得评分高的URL。这种策略不需要每次都要对新抓取URL进行重新计算分值。

网络爬虫技术的概述与研究

网络爬虫技术的概述与 研究 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

网络爬虫技术的概述与研究 摘要 网络爬虫,又被称为网页蜘蛛,网络机器人,随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎 (Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问web的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性。为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。本文将对网络爬虫技术及其原理进行简单的介绍,并且给出实例。 关键词 网络爬虫聚焦爬虫网页抓取搜索策略 URL 一、网络爬虫的简介 1、URL 在介绍网络爬虫之前,先引入URL的相关知识。URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是着名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL的格式由三部分组成:·第一部分是协议(或称为服务方式)。 ·第二部分是存有该资源的主机IP地址(有时也包括端口号)。

·第三部分是主机资源的具体地址,如目录和文件名等。 第一部分和第二部分用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。 用URL表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即目录)和文件名等信息。有时可以省略目录和文件名,但“/”符号不能省略。例如 爬虫最主要的处理对象就是URL,它根据URL地址取得所需要的文件内容,然后对它进行进一步的处理。 2、传统爬虫与聚焦爬虫 网络爬虫是一个自动提取网页的程序,它为搜索引擎从web上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。搜索引擎是基于传统爬虫技术建立的,但其存在着一定的局限性,例如:(1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。 (2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。 (3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。

网络爬虫技术的研究_孙立伟

Computer Knowledge and Technology 电脑知识与技术第6卷第15期(2010年5月)网络爬虫技术的研究 孙立伟,何国辉,吴礼发 (解放军理工大学指挥自动化学院,江苏南京210007) 摘要:网络信息资源的迅猛增长使得传统搜索引擎已经无法满足人们对有用信息获取的要求,作为搜索引擎的基础和重要组成部分,网络爬虫的作用显得尤为重要,该文介绍了网络爬虫的基本概念、爬行Web 面临的困难及应对措施,其次从体系结构、爬行策略和典型应用等方面研究了通用网络爬虫、聚焦网络爬虫、增量式网络爬虫和深层网络爬虫四种常见网络爬虫,最后指出了进一步工作的发展方向。 关键词:搜索引擎;网络爬虫 中图分类号:TP393文献标识码:A 文章编号:1009-3044(2010)15-4112-04 Research on the Web Crawler SUN Li-wei,HE Guo-hui,WU Li-fa (Institute of Command and Automation of PLAUST,Nanjing 210007,China) Abstract:The traditional search engines can not satisfy the demands of getting useful information with the blast developing of information resources on Internet,as the foundation and important part of search engine,the action of the Web Crawler appears especially important,the article introduces the concept of Web crawler,the trouble of crawling and the resolvent,also have a research on four kinds of familiar Web Crawler. Key words:search engines;web crawler 网络爬虫(Web Crawler ),又称为网络蜘蛛(Web Spider )或Web 信息采集器,是一个自动下载网页的计算机程序或自动化脚本,是搜索引擎的重要组成部分。网络爬虫通常从一个称为种子集的URL 集合开始运行,它首先将这些URL 全部放入到一个有序的待爬行队列里,按照一定的顺序从中取出URL 并下载所指向的页面,分析页面内容,提取新的URL 并存入待爬行URL 队列中,如此重复上面的过程,直到URL 队列为空或满足某个爬行终止条件,从而遍历Web [1]。该过程称为网络爬行(Web Crawling )。 1网络爬虫面临的问题 截止到2007年底,Internet 上网页数量超出160亿个,研究表明接近30%的页面是重复的;动态页面的存在:客户端、服务器端脚本语言的应用使得指向相同Web 信息的URL 数量呈指数级增长。上述特征使得网络爬虫面临一定的困难,主要体现在Web 信息的巨大容量使得爬虫在给定时间内只能下载少量网页。Lawrence 和Giles 的研究[2]表明没有哪个搜索引擎能够索引超出16%的Internet 上Web 页面,即使能够提取全部页面,也没有足够的空间来存储。 为提高爬行效率,爬虫需要在单位时间内尽可能多的获取高质量页面,是它面临的难题之一。当前有五种表示页面质量高低的方式[1]:Similarity (页面与爬行主题之间的相似度)、Backlink (页面在Web 图中的入度大小)、PageRank (指向它的所有页面平均权值之和)、Forwardlink (页面在Web 图中的出度大小)、Location (页面的信息位置);Parallel (并行性问题)[3]。为了提高爬行速度,网络通常会采取并行爬行的工作方式,随之引入了新的问题:重复性(并行运行的爬虫或爬行线程同时运行时增加了重复页面)、质量问题(并行运行时,每个爬虫或爬行线程只能获取部分页面,导致页面质量下降)、通信带宽代价(并行运行时,各个爬虫或爬行线程之间不可避免要进行一些通信)。并行运行时,网络爬虫通常采用三种方式:独立方式(各个爬虫独立爬行页面,互不通信)、动态分配方式(由一个中央协调器动态协调分配URL 给各个爬虫)、静态分配方式(URL 事先划分给各个爬虫)。 2网络爬虫的分类 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler )、聚焦网络爬虫(Focused Web Crawler )、增量式网络爬虫(Incremental Web Crawler )、深层网络爬虫(Deep Web Crawler )。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。 2.1通用网络爬虫 通用网络爬虫[3]又称全网爬虫(Scalable Web Crawler ),爬行对象从一些种子URL 扩充到整个Web ,主要为门户站点搜索引擎和大型Web 服务提供商采集数据。由于商业原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时收稿日期:2010-03-11 ISSN 1009-3044 Computer Knowledge and Technology 电脑知识与技术Vol.6,No.15,May 2010,pp.4112-4115E-mail:kfyj@https://www.wendangku.net/doc/ff18904593.html, https://www.wendangku.net/doc/ff18904593.html, Tel:+86-551-56909635690964

网络爬虫策略以及IP意义

从网络爬虫的抓取策略来看有: 宽度优先遍历策略、非完全pagerank策略、ocip策略、大站优先策略。 不管它有多少种的爬取策略,其基本目标是一致的:优先选择重要的网页进行爬取。 怎么确定网页的重要性? 根据爬虫对链接的分析得出,而链接的分析又有两种: 用户发出的查询与网页内容的内容相似性得分; 通过链接分析方法计算获得的得分。 搜索引擎融合两者,共同拟合出相似性平分函数,来对搜索结果进行排序。 页面的重要性怎么得来? 通过pagerank算法:对于某个网页A来说,网页的计算基于两个基本假设。 数量假设:如果一个页面节点接收到其他网页指向的入链数越多,页面越重要。 质量假设:指向页面A的入链质量不同,质量高的页面会通过链接想其他页面传递更多的权重。越是质量高的页面指向页面A,则页面A越重要。 这样说来,不同的爬虫所在的服务器也指定是不相同的,而我们的网站被K和降权等等所表现的形式,肯定也能通过在ftp服务器的网站日志中查询到。 我们想象一下:网络爬虫具有四种策略,而不管那种策略的网络爬虫总不能只是用一台服务器来作为载体,我们如果深入了解搜索引擎的核心内容就应该知道,爬虫从服务器出发,看到了页面之后是把页面下载到它所属的服务器中。 我们的网站会有不同的变化:快照每天更新,快照基本上不更新,网站降权,收录下降,网站被K。许多许多的不同类型的网站表现情况。 那么每天的蜘蛛访问的ip地址不同的话,也就能很显著的了解到网站的情况以及即将面对的情况,这样以来也算得上是防患于未然。 下面是吾等简单摘抄的一些网络上流传的蜘蛛不同IP段所代表的不容含义: 123.125.68.*这个蜘蛛经常来,别的来的少,表示网站可能要进入沙盒了,或被者降权。220.181.68.*每天这个IP 段只增不减很有可能进沙盒或K站。 220.181.7.*、123.125.66.* 代表百度蜘蛛IP造访,准备抓取你东西。 121.14.89.*这个ip段作为度过新站考察期。 203.208.60.*这个ip段出现在新站及站点有不正常现象后。 210.72.225.*这个ip段不间断巡逻各站。 125.90.88.* 广东茂名市电信也属于百度蜘蛛IP 主要造成成分,是新上线站较多,还有使用过站长工具,或SEO综合检测造成的。 220.181.108.95这个是百度抓取首页的专用IP,如是220.181.108段的话,基本来说你的网站会天天隔夜快照。 220.181.108.92 同上98%抓取首页,可能还会抓取其他(不是指内页)220.181段属于权重IP 段此段爬过的文章或首页基本24小时放出来。 123.125.71.106 抓取内页收录的,权重较低,爬过此段的内页文章不会很快放出来,因不是原创或采集文章。 220.181.108.91属于综合的,主要抓取首页和内页或其他,属于权重IP 段,爬过的文章或首页基本24小时放出来。

相关文档