首页 > 文章中心 > 网络爬虫

网络爬虫

网络爬虫

网络爬虫范文第1篇

关键词:网络舆情监控系统;主题网络爬虫;信息收集

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)02-0046-02

网络舆情主要是利用互联网传播具备的公众性,针对实际生活中一些热点与焦点问题所具备的影响力和倾向性言论以及观点的等,通过社会舆论所表达的一个方式。因为网络舆情拥有传播速度快和影响力大等特点,所以应该创建自动化与现代化网络舆情的监控系统,从而确保网络舆情相关信息的及时、有效采集和分析以及监控等。另外,网络舆情的监控系统一般包含信息采集模块和预处理模块以及分析模块等,其中采集模块作为舆情分析和处理工作的前提,该核心内容就是利用一个或是多个并行采集设备从互联网中有效收集相关网页数据,而采集设备一般称之为网络爬虫或是网络蜘蛛。本文主要对网络爬虫与主题网络爬虫相关处理流程进行了分析,从而针对主题网络爬虫的相应设计模块结构完成优化,实现更为简单与有效的主体网络舆情相关信息采集系统的合理设计,并为网络舆情的采集与分析提供帮助。

1 网络舆情监控系统

现阶段,国内对于舆情并未形成相对统一的认识,有关教授针对舆情进行了定义,也就是舆情为舆论状况的简称,主要是指在一定社会空间中,人们对于社会事件与社会管理人员产生与持有的社会政治态度。而网络舆情可以有效、直接反映出社会舆情,其还是实现网上相关信息交流的主体,同时人们对于部分突发事件与社会所持有的态度以及发表的言论可能会在一定的时间内对社会造成严重影响,因此一定要及时采用有效对策,针对舆情实施严格监控,从而有效控制与引导事态良性发展。另外,舆情监控一般是利用网页自动选择舆情信息,然后利用文本挖掘等相关技术针对舆情信息完成有效分析与处理,并把处理过户获取的热点信息进行上报与跟踪,科学、合理的舆情监控可以实现舆情信息从被动防堵过度至主动疏导。

2 普通网络爬虫与主题网络爬虫分析

网络爬虫作为网络舆情监控系统中采集系统的核心与基础,其直接影响着网络舆情数据采集覆盖率与查准率等。依据采集内容和目标的差异,网络爬虫一般分成普通网络爬虫与主题网络爬虫。其中普通网络爬虫主要目标就是大量采集信息页面,在采集的过程中仅仅注重网页采集的数量以及质量,从不深入考虑网页采集相关顺序与被采集页面有关主题。近些年来,网络信息的不断增长,普通网络爬虫面临着严峻的网页规模和更新速度以及个性化等诸多方面的挑战。为了能够有效改进网络爬虫的工作效率,使其可以满足相关人群深层次和面向特定领域的信息要求,一定要充分应用主体网络爬虫。该目标是在大量采集和主体有关的网页基础上,在进行采集的过程中要时刻关注互联网页内容和主体相关度。

1)普通网络爬虫分析

普通网络爬虫是利用网页间存在的超链接关系有效采集网页,需要创建一个初始化的URL集合,其为一个有序的等待抽取的URL队列,然后从此队列中某一个URL开始,有效提取相应页面中的HTML内容,同时分析与提取在此页面中其他相关的全部超链接,把其分别加入至URL队列里,对之前的URL队列完成更新,然后依据图表中广度或是深度优先选择策略有效访问下一个URL连接,这样依次循环,不断重复上述过程,一直到全部网页都被提取完成或是依据Web爬取方案停止采集位置,该爬取流程图如图1所示。

2)主题网络爬虫分析

主题网络爬虫主要指有选择性的收集和目标主题存在关联的网页。应该针对主题完成向量表示,依据内容相关度有效计算出相应网页内容与主题的相关度,同时针对链接完成相关度评价,从而决定选择哪种网页。在进行采集时并不需求采集全部的网页,对此主题网络爬虫所需要保存的页面相对较少,能够在很大程度上节约相关硬件与网络资源,并且可以有效满足特定人们对查找特定主题的相关需求。另外,主题爬虫主要是在普通网络爬虫基础上实现相关功能的扩充,主要设置了针对URL与网页主题相关度的评价,主题网络爬虫工作流程如图2所示。

3 主题网络爬虫设计研究

主题网络爬虫只针对与主题有关的网页完成采集,并不是覆盖全部网页。应该先对主题完成向量表示,依据内容的相关度有效计算出所要访问的页面内容以及主题相关度,同时针对链接完成预测和分析,有效识别相关链接是否与主题有关,最后决定选择相应链接所指向的网页,同时设置提取链接的合理顺序。另外,主题网络爬虫整体运行流程比较复杂,首先要启动爬虫程序,然后输出主题和种子站点,完成主题的向量表示。其次获取网页的HTMT正文内容,并把网页输入至页面相关度的分析模块,有效计算出此页面和主题的相关度,并且把所提取到的相关页面链接和链接锚文本等多种有关信息输入至链接的评价模块中,通过测算相关度超过阀值的链接输入至链接的优先权队列中。然后依据链接选取对策,选取下一个进行访问的链接输入至爬行模块。最后,反复重复上述步骤,一直到满足相关结束条件为止。主题网络爬虫更为关注发现用户需求的信息资源,怎样更多获取和主题存在密切关系的网页,怎样在一定程度上提升采集效率都是主题网络爬虫系统设计的重要内容。另外,主题网络爬虫系统的设计应该以普通爬虫系统作为基础,然后在此基础上进行部分功能的扩充,依据主体网络爬虫相关功能需求与运行流程,设计的系统如图3所示。

4 主题网络爬虫关键技术分析

主题爬虫比较重视网页相关度,依据相应的网页分析算法有效过滤和主题并无关联的网页,并且保留和主题有关的网页和链接,从而更多的采集和主题有关的网页内容。对此,就应该科学、有效设计主题网络爬虫算法。

主题向量表示和关键词权值计算方式。主题一般利用一组关键词进行表示,同时主题关键词通常要在种子文档中获取。而种子文档主要由用户所指定的样例文档和种子页面相应文章以及种子页面实现相邻近区域扩展之后产生的文章等构成。另外,种子文档的产生过程比较复杂,增加种子页面所指向的页面,指向种子页面的页面实现种子页面的有效扩展,在扩展至一定条件过后停止,然后将用户输入至样例文档和种子页面文档以及扩展种子文档构成一个种子文档集,最后利用统计词频与逆文档频率(TF-IDF)手段针对种子文档集完成词频统计,同时还要实现权值计算,将权值最高的n个值构成主题关键词集,有效表示所给定的相应任务主题。

5 结束语

近些年来,主题爬虫技术在信息采集与数据挖掘方面的关键性日益突出,而且主题网络爬虫的研究和分析已经受到人们的高度重视。通过分析与研究普通网络爬虫与主题网络爬虫技术的特点以及处理流程,在满足相关功能要求的前提下,重点分析与研究了主题网络爬虫相关功能模块的设计以及所有模块的具备的作用。另外,还针对主题网络爬虫的相关度计算和主题向量表示进行了分析。但是对于怎样发现更多网页,怎样获取相关度更高的有关页面和提升主题网络爬虫工作效率,依然需要深入研究。

参考文献:

[1] 宋海洋,刘晓然,钱海俊,等.一种新的主题网络爬虫爬行策略[J].计算机应用与软件,2011,28(11):264-267.

[2] 魏晶晶,杨定达,廖祥文.基于网页内容相似度改进算法的主题网络爬虫[J].计算机与现代化,2011(9):1-4.

[3] 叶昭晖,曾琼,李强.基于搜索引擎的网络舆情监控系统设计与实现[J].广西大学学报:自然科学版,2011,36(10):302-307.

[4] 谢飞,吴信东,胡学钢,等.基于语义联系的新闻网页关键词提取[J].广西师范大学学报:自然科学版,2012,27(1):145-146.

[5] 刘金红,陆余良.主题网络爬虫研究综述[J].计算机应用研究,2010,24(10):26-29.

网络爬虫范文第2篇

关键词:搜索引擎;信息采集;网络爬虫;数据缓冲池

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2082-02

Design and Implementation of a optimized Web-Crawler

CAO Zhong1,ZHAO Wen-jing2

(1.College of Computer and Educational Software,Guangzhou University,Guangzhou 510006,China;2.Center of Experiment,Guangzhou University,Guangzhou 510006,China)

Abstract: Web-Crawler is a important part of search engine,it is responsible for the network information gathering.The paper introduce the design and implement of a optimized Web-Crawler.It include the frame,Main module, multi-thread work and the data buffer pool Shift memory technology. Web-Crawler depends Multi-thread parallel downloading enhanced the speed,and uses the data buffer pool Shift memory technology to realize Fast retrieval and Reduced the storage space demand.

Key words: search engine; information gathering; web-crawler; data buffer pool

1 引言

搜索引擎(Search Engine)是随着Web信息的迅速增加,从90年代中期开始逐渐发展起来的技术。面对Internet上浩如烟海的信息,搜索引擎主要功能就是方便人们快速地在Internet上找到自己所关心的信息。 网络爬虫程序是搜索引擎的重要组成部分。它通过请求站点上的HTML文档访问某一站点,它遍历Web空间,不断从一个站点移动到另一个站点,自动建立索引,并加入到网页数据库中。网络爬虫进入某个超级文本时,它利用HTML语言的标记结构来搜索信息及获取指向其他超级文本的URL地址,可以完全不依赖用户干预实现网络上的自动爬行和搜索。是整套搜索系统的流程启动者。其设计的好坏和性能的优劣直接影响系统的性能。

网络爬虫的主要功能包括:

1) 通过HTTP协议,从Internet中抓取网页信息;

2) 判断页面内容有无重复;

3) 从页面信息中提取URL,并判断提取的URL的可用性;

4) 判断获取的URL是否已被访问过,若未访问则将此URL放入待访问队列中。

该文介绍了一种优化的网络爬虫Web_Crawler的设计方案。由于网络信息量的巨大,网络爬虫多采用多机并行的设计方案。

2 系统框架

Web_Crawler采用多机并行的设计方案。系统中包括一个本地配置器(Local Collocation)和多个网络爬虫Web_Crawler。本地配置器对被搜索的网络进行逻辑划分,并把划分后的逻辑分区分配给每个网络爬虫。每一个网络爬虫采用多线程负责下载自己负责的逻辑分区内的网页,并通过本地配置器来相互交换下载任务,相互之间通过高速的局域网进行通信。它们使用本地存储空间存储下载的网页,但在存入本地存储空间之前使用数据缓冲池进行转存,在缓冲池中进行信息的标引,处理后的结果被集中保存在媒体内容数据库中以供检索程序使用。整个系统框架如图1 所示。

Web_Crawler:网络爬虫;

Local Collocation:本地配置器;

Data Buffer Pool:数据缓冲池;

Information Index Engine:信息标引引擎;

Media Content DataBase:媒体内容数据库。

3 多线程下载技术

多线程是一种机制,它允许在程序中并发执行多个指令流,每个指令流都成为一个线程,彼此间互相独立。多个线程的执行是并发的,也就是在逻辑上“同时”,而不管是否是物理上的“同时”。因为系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU的速度非常快,用户感觉不到其中的区别,因此只需要设想各个线程是同时执行即可。多线程和传统的单线程在程序设计上最大的区别在于:由于各个线程的控制流彼此独立,使得各个线程是乱序执行的,因此必需注意的线程调度和同步等问题。

由于网络爬虫Web_Crawler采用MFC开发,所以多线程并发工作必须使用MFC的线程机制。在MFC中,线程分为用户界面线程和工作者线程(又称为后台线程或辅助线程)两种。

用户界面线程通常用来处理用户输入并响应用户生成的事件和消息;不需要用户输入的就是工作者线程。CWinAPP对象就是一个用户界面线程,用户界面线程一般都是主线程,在Windows操作系统下随应用程序启动而自动创建,随应用程序的退出而终止。创建用户界面线程先从CwinThread派生一个类,同时必须使用DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE来声明和实现这个CWinThread派生类,然后根据需要重载该派生类的一些成员函数,最后调用AfxBeginThread函数来启动界面线程。

工作者线程用来执行后台的处理任务,比如计算、压缩、对文件或串口的读写操作等。它和用户界面线程的区别是它不用从CWinThread类派生,它的创建主要是通过AfxBeginThread( )函数的另一个版本来实现。创建线程的方法有很多,也可以直接使用Win32 API函数CreateThread来实现。在此我们采用的是工作者线程来进行多线程抓取页面数据和多线程数据缓冲缓池中提取数据进行标引等操作。

网络爬虫Web_Crawler采用多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的使用效率。系统的多线程抓取数据和多线程提取数据如图2所示。

网络爬虫范文第3篇

关键词: Web挖掘分析; 网络爬虫; 原理分析

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2013)07-01-02

0 引言

随着Internet的日益普及,电子商务正以其成本低廉、方便、不受时空限制等突出优点而逐步在全球流行。同时经济模式也发生了变化,从传统的实体商店到Internet上的电子交易,改变了销售商和顾客的关系。现在,网上顾客的流动性很大,他们更多关注商品的使用价值和价格,而不像以前更多关注品牌和地理因素。因此,电子销售商一个主要的挑战是尽可能多地了解到客户的兴趣爱好和价值取向,以保证在电子商务时代的竞争力。通过Web日志挖掘,可以发现顾客的购买偏好;发现忠实客户,为他们提供个性化的服务,延长客户的驻留时间;发现潜在用户,为他们提供个性化页面,变潜在用户为忠实客户,扩大市场占有率;分析客户未来可能发生的行为,进行有针对性的电子商务营销活动,提高广告的投资回报率。所以从长远看对基于Web数据挖掘的研究很有必要。

1 Web数据挖掘概述

Web数据挖掘是数据挖掘技术的重要应用,它是指在大量训练样本的基础上,得到数据对象间的内在特性,并以此为依据在网络资源中进行有目的的信息提取[1]。

1.1 Web数据挖掘流程

Web数据挖掘总体上讲来,可以由五个流程来完成,如图1所示。

⑴ Web查找资源:根据所提供的目标Web文档内容,采用一定的技术方法获得相应的数据,形成挖掘的数据源。需要说明的是,这部分资源不仅局限于在线Web文档资源,还包括与其相关的电子邮件、电子文档、新闻组,或者网站的日志数据资源,甚至还可包括通过Web形成的交易数据库中的数据资源。如何对这些资源进行融合是一个极为重要的问题。

⑵ 信息选择和预处理:通过查询获得的数据源,从中筛选出有用的信息,并将其按一定的类型进行归集。

⑶ 模式发现:针对归集得到的有用信息,将其应用于某一具体的站点或多个相应的站点,并进行自动模式发现。

⑷ 模式分析:对模式发现阶段得到的一些模式进行分析,验证、解释每一步骤间产生的模式的关联关系。这一阶段的工作可以由机器自动完成,也可以与分析人员进行交互来完成,主要依据模式发现规模来确定。

⑸ 信息整理:对经过模式分析得到的信息进行进一步挖掘整理,将其应用于Web商务中。

1.2 Web数据挖掘分类

Web挖掘技术研究至今,已有一些不同的方法,一般根据对Web数据的感兴趣程度不同,可将Web数据挖掘分为Web内容挖掘、Web结构挖掘、Web用法挖掘三类。

⑴ Web内容挖掘:Web内容挖掘指从Web内容中发现有用信息[2]。Web上的信息由各种类型的数据源组成,包括WWW、FTP、Telnet等,比如数字图书馆、政府信息服务、电子商务数据,以及其他可以通过Web访问的数据库。

⑵ Web结构挖掘:从广义上讲,Web的结构包含三个内容:一是不同网页间的超链接;二是网页内部的网络地址字符串中的目录路径结构信息;三是网页内部内容可以用HTML、XML表示成的树形结构信息[3]。

⑶ Web用法挖掘:即Web使用纪录挖掘技术[4],在新兴的电子商务领域有重要意义,它通过挖掘相关的Web日志纪录,来发现用户访问Web页面的模式;通过分析日志纪录中的规律,可以识别用户的喜好与满意度,这些分析数据可以帮助我们提高站点的服务质量,同时发现未来潜在用户。

2 爬虫原理

爬虫是一个用来分解Web中超文本结构的工具,而网络爬虫则可以认为是一个自动提取网页的程序,它为搜索引擎从万维网下载网页,是搜索引擎的重要组成部分。一个商业网站的Web页面是以超链接的关系存在的,这就组成了类似一张张的网。

网络爬虫是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,同时找到在网页中的其他链接地址,通过这些链接地址寻找下一个网页,这样一直循环下去,最终把这个网站所有的网页都抓取完为止[5]。

假设把整个互联网当成一张网,那么网络爬虫就可以用这个原理在这张网上把互联网上所有的网页信息都抓取下来。具体可按如下步骤。

Step1:从一个或若干初始网页的网页地址开始,获得初始网页上的网页地址;

Step2:不断从当前页面上抽取新的地址放入队列,直到满足系统的一定条件才停止。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的地址队列;

Step3:根据一定的搜索策略从队列中选择下一步要抓取的网页地址;

Setp4:不断重复步骤2-3,直到达到系统的某个条件发出停止指令,不再往下访问;

Setp5:将所有被爬虫抓取的网页存贮,并进行一定的分析、过滤,并建立索引,以便之后的查询和检索。对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导;

Setp6:任务完成。

3 基于爬虫内容挖掘分析

3.1 内容挖掘过程

同Web挖掘总体过程一样,内容挖掘过程由数据获得、数据分析、数据保存、内容挖掘四个过程组成[6],具体介绍如下。

⑴ 数据的获得:利用爬虫原理对Web相应数据进行查找,从需要的信息起始页开始运行爬虫程序取得数据信息,得到与商务相关的大多数Web页面上的信息。这部分资源不仅局限于在线Web文档资源,同时还有与其相关的电子邮件、电子文档、新闻组,或者网站的日志数据资源。

⑵ 数据的分析:对Web相关数据进行分析,在对链接页面进行搜索的过程中,经常需要判断信息的属性或分析信息的价值。这一阶段的数据非常多,必须在前一阶段进行分类,同时对有些数据要进行必要的处理,不必要的必须将其删除,否则影响分析进程,比如一些广告信息等并不是我们所需要的数据。

⑶ 数据的保存:通过前一过程的分析,需要把经过分析得到有效的数据最终保存到一定数据库(就目前针对海量数据来讲,一般选择如SQL Server2008等)当中,目的是为了下一步最终的挖掘作准备工作。

⑷ 数据挖掘:利用一定的挖掘技术对数据进行深入分析,最终获取有效的信息,同时对信息模式进行相应的分类,并对这些分类模式进行验证。

3.2 网络爬虫挖掘技术实现

本爬虫技术采用非递归方式来实现爬行过程。在实现过程中要构建等待队列、运行队列、完成队列、错误队列四个队列,需经过三个流程[7]。

这四个队列如下:

⑴ 等待队列是爬虫初始网页地址和爬虫程序新发现的网页地址的集合;

⑵ 运行队列是爬虫程序正在处理的网页地址的集合;

⑶ 完成队列是已经被爬行完成的网页地址的集合;

⑷ 错误队列是爬虫程序在解析页面出错或读取数据超时网页地址的集合。

网络爬虫程序在执行时,同一时刻一个网页地址只能在一个队列中,我们把它称为一个网页地址状态。程序按状态图从一个状态变换到一个状态,如图2所示。

通过图2过程图可以看出,一个网页地址从被待处理到此网页地址处理完毕要经历四个网页地址状态过程。首先是在等待队列中,网页地址等待被自动机进行处理,新发现的网页地址被加入到这个队列中;当自动机开始处理某个网页的网页地址时,这个网页地址就被送到运行队列中进行处理;在处理过程中,可能有两种情况出现,即这个网页是否存在问题,要根据这个问题作出相应的处理,如果自动机在抓获某个网页时有问题,那么这个网页的地址将被送到错误队列,错误队列中的地址不能被移入到其他队列中;如果自动机成功地获取某个网页,那么这个网页的地址将被送到完成队列,完成队列中的地址也不能被移入到其他队列中。

需要注意的是,等待队列中的地址向运行队列移交过程中,需要有一个判断,这个判断是确定这个网页是否被访问过,若访问过则不能重复爬行;当运行队列中一个网页地址处理完成后,等待队列中地址按照先进先出的原则被加入到该队列,同时队列中相应的地址被删除。

4 结束语

电子商务正在企业和商贸领域中占据着越来越多的市场份额,Web挖掘支持网络应用,具有很强的平台适应能力,它的适用性和可移植性强。现在世界上的主要数据库厂商纷纷开始把数据挖掘功能集成到自己的产品中。作为电子商务成功的重要因素,它必将成为一种关键技术。

本文介绍了Web挖掘的基本流程,引入了基于图形的爬虫技术挖掘方法,阐述了挖掘步骤,能有效挖掘Web有价值的数据,完成挖掘任务。但由于这种技术基于图形形式,当面对海量数据时,对图形的扫描仍然存在一定的困难,这些问题尚需深入分析研究。

参考文献:

[1] 蔡遒花,张支山.Web使用模式及其在电子商务领域的应用[J].科技管理研究,2005.11:126-127

[2] 陈美荣,杨莉.基于电子商务网站的Web内容挖掘[J].电子商务,2008.2:149

[3] 王玉珍.基于电子商务的Web挖掘技术研究[J].北京电子科学院学报,2005.4:22-25

[4] 吴海珍,郑群明.Web记录挖掘及其在旅游电子商务中的应用[J].电脑学习,2005.5:41-42

[5] 周建梁.聚焦爬虫原理及关键技术研究[J].科技资讯,2008.22:26

网络爬虫范文第4篇

关键词:SOA DDoS 爬虫技术 检测技术

中图分类号:TP393.08 文献标识码:A 文章编号:1007-9416(2016)10-0202-01

面向服务的体系架构(Service-Oriented Architecture, SOA)作为一个全新的网络架构和组件模型,在提供便利的同时也面临安全方面的挑战。SOA系统不但会受到传统的网络攻击,如重放攻击、注入攻击等,也会受到各种DDoS攻击。近日有研究表明,假冒搜索引擎爬虫已经成为第三大DDoS攻击工具。本文所介绍的基于SOA架构下的DDoS攻击检测方法主要针对当今比较流行的利用网络爬虫所发起的DDoS攻击。

1 SOA安全问题研究

SOA是一个组件模型,它将应用程序的不同功能单元(即服务)通过这些服务之间定义良好的接口和契约联系起来。SOA目前在很大程度上还是比较依赖Web服务,特别是一些面向服务技术在SOA架构上的应用,导致SOA在提供了良好的便捷的同时也避免不了一些安全隐患。而目前来看SOA往往大多应用在企业级平台之上,它所承担的服务不再单纯的是一种技术能力,而更多的是一种业务能力和IT资产。因此研究SOA架构下安全问题,特别是安全检测技术,在风险到来之前提前预测、感知和及时响应具有十分重要的意义。

2 网络爬虫技术

2.1 网络爬虫概述

网络搜索引擎的主要数据来源就是互联网网页,通用搜索引擎的目司褪蔷】赡艿奶岣咄络覆盖率,网络爬虫(又称网页蜘蛛或者网络机器人),就是一种按照特定规则,自动抓取互联网信息的脚本或者程序。 搜索引擎利用网络爬虫技术爬取Web网页、文件甚至图片、音视频等多媒体资源,通过相应的索引技术处理这些信息后提供给用户查询。

2.2 网络爬虫的安全性问题

网络爬虫策略就是尽可能多的抓取互联网中的高价值信息,所以爬虫程序会根据特定策略尽可能多的访问互联网上的网站页面,这毫无疑问会占用目标网站的网络带宽和Web服务器的处理开销,特别是一些小型网站,仅仅处理各种搜索引擎公司的爬虫引擎就会导致自身服务器“应接不暇”。所以黑客可以假冒爬虫程序对Web站点发动DDoS攻击,使网站服务器在大量爬虫程序的访问下,系统资源耗尽而不能及时响应正常用户的请求甚至彻底崩溃。不仅如此,黑客还可能利用网络爬虫抓取各种敏感资料用于不正当用途。比如遍历网站目录列表;搜索测试页面、手册文档、样本程序以查找可能存在的缺陷程序;搜索网站管理员登录页面;搜索互联网用户的个人资料等等。

3 恶意爬虫DDoS攻击的防范和检测

一般情况下,因为特定网站的特殊原因,比如有些网站不希望爬虫白天抓取网页,有些网站不希望爬虫抓取敏感信息等,所以爬虫程序默认是需要遵守Robots协议,所以限制爬虫最简单直接的方法就是设置robots.txt规则。然而并不是所有的搜索引擎爬虫都会遵守robots规则,所以仅仅设置robots是远远不够的。

3.1 日志分析来检测恶意爬虫攻击

(1)分析服务器日志统计访问最多的IP地址段。

grep Processing production.log | awk ’{print $4}’ | awk -F’.’ ’{print $1〃.〃$2〃.〃$3〃.0〃}’ | sort | uniq -c | sort -r -n | head -n 200 > stat_ip.log

(2)把统计结果和流量统计系统记录的IP地址进行对比,排除真实用户访问IP,再排除正常的网页爬虫,如Google,百度,微软爬虫等。很容易得到可疑的IP地址。分析可疑ip 的请求时间、频率、refer头等,很容易检测是否网络爬虫,类似如图1所示日志信息明显是一个网络爬虫。

3.2 基于访问行为特征检测爬虫DDoS

通过日志分析来检测恶意爬虫攻击,无法及时检测并屏蔽这些spider。所以面对分布式的爬虫DDoS攻击,网站很有可能无法访问,分析日志无法及时解决问题。针对恶意爬虫程序和正常用户访问之间的行为特征不同,爬虫DDoS程序为了达到占用系统资源的目的,其访问往往是频率很高而且呈明显规律性,明显区别于真实正常用户浏览访问时的低频率和随机性,所以基于统计数据或者其他应用识别或者IPS技术,可以较容易的生成正常情况下的行为模型,通过采集正常的流量行为可以构造一个正常的网络行为模型,我们可以把处于正常模型内的流量行为认定为正常行为,一旦和正常行为轮廓有了较大的偏离,可以认定为异常或者攻击行为。

4 结语

由于基于SOA的网络系统下的DDoS攻击的普遍性,以及网络爬虫及其对应技术给现有Web系统带来的安全威胁。本文提出了一些反恶意爬虫攻击的策略和思路,对网站管理及安全人员,有一定的参考意义。随着基于网络爬虫和搜索引擎技术的互联网应用日益增多,我们有必要针对这些应用带来的安全问题做更深入的研究。

参考文献

[1]袁志勇.分布式拒绝服务攻击的攻击源追踪技术研究[D].长沙:中南大学,2009.

[2]何远超.基于Web的网络爬虫的设计与实现[J].网微计算机信息,2007,23(21):119-121.

[3]周伟,王丽娜,张焕国,傅建明.一种新的DDoS攻击方法及对策[J].计算机应用,2003.01:144.

[4]王希斌,廉龙颖.网络安全实验中DDoS攻击实验的实现[J].实验科学与技术,2016,14(1):68-71.

收稿日期:2016-08-30

网络爬虫范文第5篇

[关键词]搜索引擎 主题爬行 爬行策略 爬行算法

[分类号]TP391

搜索引擎技术自诞生之日起就成为互联网中最吸引人的技术之一,各种商业化的搜索引擎已经成了人们使用互联网时不可缺少的工具。传统搜索引擎的工作原理是服务提供商利用网络爬虫(Web crawler,也被称作网络蜘蛛(Web spider)或网络机器人(robot),通过一些种子站点按照深度优先或者广度优先的搜索策略对可以爬行到的资源进行扫描、下载,并将下载的信息以快照或全文方式存储在数据库中,建立相关索引,当用户在搜索引擎的用户界面中输入搜索关键字后,搜索引擎访问数据库,返回数据库中与搜索关键字匹配的纪录。随着互联网中网页资源的快速增长,传统的搜索引擎在某些方面的缺陷也越来越明显:①搜索结果不够全面。传统搜索引擎希望镜像整个Web世界,搜索引擎追求的是尽量多的处理及存储网络爬虫爬回的网页,但不同的搜索引擎由于受到服务器位置、网络带宽、爬行算法、服务器容量等因素的影响,服务器中存储的资源是有限的,任何一个搜索引擎不可能存储并索引网络上所有的网页信息。即使是全球最大的搜索引擎Google,其索引的页面数量也仅占Web总量的40%左右。②搜索周期增加,影响信息的实效性。随着Web资源的快速增长,传统搜索引擎网络爬虫的爬行周期不断增加,数据库更新时间越来越长。每一个网页都有自己的生命周期,网页的更新速度可能会快于搜索引擎数据库的更新速度,当搜索引擎把数据库中已经过期的信息反馈给用户时,用户可能根本无法打开相关链接或者打开的是过期的网页。③搜索结果的针对性不强。用户输入一个关键字后返回很多结果,但存在大量重复,很多结果并不是用户需要的。通过对欧洲和美国9个主要的搜索引擎日志的统计分析,认为用户对于搜索结果的查看呈减少趋势。普通用户仅仅会察看搜索引擎返回的前若干条数据,对于其他搜索结果,很多用户没有耐性全部看完。不同专业背景的人,对于同一个关键词的理解可能大相径庭,同样的“苹果”一词,有人可能理解成为食品,有人可能理解成为苹果公司或者其IT产品。

鉴于传统搜索引擎的这些缺陷,一些学者提出了垂直式搜索引擎的概念,即该搜索引擎不以爬行所有的Web页面为目标,仅仅在互联网中快速爬行某一部分Web页面并存储,这样的搜索引擎既可以节约网络带宽资源,又可以缩短搜索引擎数据库的更新周期,使搜索引擎得到实时性更好的网页。De Bra等最先提出的主题爬行(topic crawling)搜索引擎通过限定爬行主题,提高了搜索精度,成为垂直式搜索引擎的代表。主题爬行技术的核心是爬行策略与算法,本文从主题爬行技术的基本原理出发,对其策略进行分类,沿着爬行策略及算法的改进,分析了主题爬行策略与算法的研究热点,为主题爬行技术的进一步研究提供参考。

1 主题爬行原理

主题爬行是在传统网络爬行技术基础上,加入文本分类、聚类以及Web挖掘等相关技术用于捕获特定主题的Web信息。主题爬行技术的应用可以提高搜索精度,降低搜索引擎对网络资源的占用,缩短搜索引擎数据库的更新周期。基于主题爬行技术的搜索引擎与传统搜索引擎最大的区别在于:该搜索引擎的网络爬虫是面向主题的。传统搜索引擎的网络爬虫在爬行过程中采用的是“通吃”策略,不分类别、不分内容全部爬行并下载;基于主题的网络爬虫在爬行前或者爬行过程中根据已经爬行的结果有选择性的进行预测下一步爬行并下载。

主题爬行过程通常由三部分构成:①分类器(clas―sifter),主要对已抓取网页的元素进行计算,判断其主题相关度,确定是否对该网页中所包含的超级链接进一步抓取;②提取器(distilIer),该模块存储待下载队列,并确定待下载队列的优先级;③爬行器(crawler),该模块在分类器和提取器的指导下,执行网页抓取工作。主题爬虫的爬行过程为爬行器根据不同的爬行策略执行爬行操作,抓取网页送人分类器中,分类器对已经抓取的网页进行处理,根据设定主题及其域值判断该网页的主题相关性,结合其他参数,确定是否对该网页包含的超级链接进一步爬行。如果爬行,则送入提取器中的队列,由提取器根据队列规则确定其爬行优先极。Chakrabarti等人 1999年正式提出了个性化主题搜索引擎的概念,该搜索引擎不以传统的关键词作为搜索内容,而是在某一限定范围内,通过计算Web页面内容与主题的相关性,决定主题爬虫是否值得进一步搜索。其中,主题是由一些范例文档来确定的,该主题爬虫实时查找与文档词典有相关性的网页,保证了搜索页面的时效性与针对性。

2 主题爬行基本爬行策略与算法

主题爬行技术的核心是爬行的策略与算法,由于主题爬虫与传统网络爬虫在爬行目标上有很大差别,因此,除了采用传统网络爬虫的爬行策略之外,主题爬虫在爬行过程中还要采用有效爬行策略与算法尽快爬到并抓取与主题相关的网页。Sotiris Batsakis等人将主题爬行策略分成三类:经典主题爬行策略、改进的主题爬行策略、基于语义的主题爬行策略。经典爬行策略主要指主题爬行的“鱼群搜索策略”(fish search),改进的主题爬行策略主要指“鲨鱼搜索策略”(sharksearch)、“最优最先(best first)搜索策略”等。

鱼群搜索策略是以“鱼群搜索算法”(fish algo―rithm)为基础的主题爬行策略,鱼群搜索算法是一种基于群体动物行为的智能优化算法,该算法模仿鱼群在觅食和繁殖时的表现,动态调整种群的个数。在鱼群搜索策略中,每个网页相当于一条鱼,如果遇到满足给定条件的相关网页,则该鱼繁殖小鱼,并对该网页发出的链接进一步探索;否则食物减少,如果一条鱼的食物减为零,则该鱼将停止寻食并放弃对该链接的爬行。鱼群搜索策略中某一超级链接是否放人提取器中待下载,取决于该链接的父链接与主题的相关性。关于待下载链接与主题的相关性,De Bra L”提出了通过比较已下载网页内容与主题关键字是否匹配,引入二元分类方法(1代表相关,O代表不相关)来计量相关性。

改进的主题爬行策略是基于鱼群搜索策略基础的改进,Hersoviei M”。提出采用向量空间模型(vectorspace model)来计量相关性,向量空间模型不以整数0、1来计量相关性,而是通过多个参数比较,采用O一1之间的实数来计量。该方法除了用已下载网页内容和主题关键词是否简单匹配来判断相关性,还通过计算

锚文本(anchor)等其他参数与主题的相关性来计量。这种改进的搜索策略比鱼群搜索策略在爬行的准确率(precision rate)和召回率(recall rate)上有很大的进步,该搜索策略被称之为“鲨鱼搜索策略”(shark search)。在“鲨鱼搜索策略”中,已下载网页中页面内容、锚文本内容、链接内容(URL)及父页(指向包含链接页面的Web页)的相关性等都作为主要参数用来计量待下载网页与主题的相关性,通过计算确定待下载网页是否进人提取器队列中。关于参数向量的选择,Cho J等提出了重要度向量,该重要度向量由几个部分构成:①已下载页面逆文献频率法(inverse document frequency,IDF)的关键词相关度;②已下载Web页的重要链接指向个数(backlink count);③已下载页面指向链接的重要度值(pagerank);⑧URL位置矩阵(10cation metrics)等四个参数作为衡量相关性的向量。

随着研究的不断深入,“鲨鱼搜索策略”也不断完善,该方法中向量空间模型的参数越多,相关性计量越准确,但参数增加使计算量也随之增加,因此,过多的参数对爬行速度有一定影响。但Zhumin Chen等”。对各种主题爬虫的运行时间进行了实验分析比较,该学者认为,相对于网络中的下载等待时间来说,相关性计算的时间很少,有时甚至不到下载时间的十分之一,因此页面相关性的计算对爬行速度的影响是可以忽略的。在“鲨鱼搜索策略”的基础上,Menczer F等提出了“最优最先”(best first)搜索策略,这一策略通过计算向量空间的相关性,把相关性“最好”的页面放入最优先下载的队列,另外,“最优最先”搜索策略采用了术语频度(TF)值计算文本相似度,减少了部分计算量。根据文献,由于只选择与主题相关性很大的链接,而忽略某些当前相关性不高但下级链接中包含很高相关性链接的网页,最优最先算法具有很大的贪婪性,该算法只能找到局部范围内的最优解,难以得到全局范围内的最优解。因此,该搜索策略只适用于小范围内的主题爬行,对于大范围的主题爬行,容易过早地陷入Web空间中局部最优子空间的陷阱。

作为一种有效表现概念层次结构和语义的模型,本体论(ontology)被广泛地应用到计算机科学的众多领域。美国斯坦福大学的知识系统实验室学者TomGruber提出了本体是概念化的显式表示,Studer在Gruber的基础上扩展了本体的概念,提出本体是共享概念模型的明确形式化规范说明。本体具有良好的概念层次结构和对逻辑推理的支持,可以解决信息源之间结构和语义的异构,W3C在2004年提出了Web本体语言(Web ontology language,OWL)的标准。基于本体的网络爬虫认为概念上使用相似术语的页面应具有一定的相关性。M.Ehrig等学者将本体应用于主题爬虫的分离器中,首先通过定义术语的相关性,建立本体术语集合,通过对已下载网页处理并对本体库的比较分析,计算其相关性,确定是否将待下载链接放入分离器,提高了主题爬行的准确度与召回率。Jason J.Jung提出基于语义主题爬行的开放式决策支持系统,该开放系统主要包括基于上下文语义的主题爬虫通过域内链接进行区域内知识发现及知识的处理,为开放式决策支持系统迅速提供知识。基于语义的主题爬行技术中,本体库的构建及完善是一项复杂的工作,因此应用范围有限。

3 爬行策略与爬行算法的改进

虽然鱼群搜索策略、鲨鱼搜索策略、最优最先搜索策略是主题爬虫常用的搜索策略,但由于互联网中网站结构的多样性及复杂性,很多学者在主题爬行算法中尝试采用其他的搜索算法实现较高准确率与召回率。相继提出了采用模糊算法、人工神经网络、遗传算法、粗集理论等方法指导主题爬虫的爬行过程。

作为最优最先搜索策略的改进,李学勇等采用模拟退火算法作为爬行的启发式搜索算法,与爬行中的“隧道技术”结合改进主题爬虫。模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解。该算法在选择优化解方面具有非贪婪性,在爬虫搜索过程中,每次除了选择评价值最优的链接,还以一定概率有限度地接收评价值次优的链接,确保有一定价值的链接有机会被选中。“隧道技术”使爬虫有机会穿过相关性低的区域进入相关性高的区域,当页面内容的相关度低于设定的阈值时,通过扩大主题范围,使更多的相关链接加入到链接优先级队列,提高相关网页的召回率。模拟退火算法是一种随机算法,虽然可以比较快地找到问题的近似最优解,但不一定能找到全局的最优解。因此,将模拟退火算法应用于最优最先搜索策略并不能完全保证主题爬行的鲁棒性。

遗传算法(genetic algorithm)是模拟生物进化论与遗传学结合的计算模型,在最优解搜索领域具有一定优势,自从密西根大学的Holland教授提出该算法后,由于其鲁棒性、自组织性强等优点,在很多方面有广泛的应用。Jialun Qin等学者采用遗传算法实现主题爬虫在特定域内的爬行,通过初始化、内容分析选择、链接分析杂交、变异等几个步骤实现主题爬虫在特定域内的爬行。根据文献,该算法的应用在某些Web页的主题爬行中具有较好的准确率与召回率。遗传算法应用于主题爬行技术中存在编码方式的确定、适应性函数的确定等问题,由于网站结构、网页类型的不同需要采取不同的标准。遗传算法也存在局部最优陷阱问题,单纯使用遗传算法进行主题爬行时也会存在无法穿越隧道的问题。

隐马尔柯夫模型(HMM)作为一种统计分析模型,在信号识别等领域有广泛的应用,隐马尔柯夫链在相关性评估应用中具有一定优势。Hongyu Liu等提出基于隐马尔柯夫模型的算法来评估待下载页面与主题之间的相关性。该系统包括三个步骤:①进行数据收集;②依据相关性模式建模;③根据模型对待下载页面评估并进行主题爬行。该算法的应用可以提高主题爬虫在分离器中的处理精度,但由于计算量的增加,会降低处理效率。

人工神经网络近来日益受到人们的关注,因为它特有的非线性、自适应性、自学习性为解决复杂问题提供了一种相对比较有效的简单方法。Hai-Tao Zhengr提出采用基于本体的人工神经网络(ANN)实现自学习爬行,系统框架分为三个步骤:①进行数据准备;②通过现有的数据集对人工神经网络进行训l练;③将训练过的主题爬虫应用于实际爬行,取得较高的准确率与召回率。人工神经网络存在训练时间长、学习算法的通用性低等缺点,所以,将人工神经网络应用于主题爬行中,也存在样本学习时间长,学习算法不具有通用性等缺点。因此,人工神经网络仅仅适用于小范围的主题爬行。

除以上算法的改进,很多学者还尝试采用其他计

算方法改善主题爬虫的搜索性能,Suman Saha等。应用粗集理论对未下载的Web页面进行预测,判断其与主题相关性,该方法提高了爬行页面的准确率,降低了噪声。Huaxiang Zhang等提出利用Q学习及在线半监督学习理论在待访问的URL列表中选择与主题最相关的URL,相关值的计算基于模糊理论及Q值理论。

虽然很多学者尝试通过不同的软计算方法改进主题爬虫,但由于互联网中网站结构与网站内容多样复杂,这些算法往往应用于某些网站时具有较高的准确率与召回率,但是应用于另一些网站时准确率与召回率会下降。主题爬虫的准确率与召回率除了受网站结构、主题爬虫的爬行策略与算法等因素的影响,还受爬行入口位置、Web服务器性能等其他相关因素影响。

4 主题爬行策略与算法的研究热点

鉴于主题爬行技术的不断发展,主题爬行策略及算法也在不断完善。目前关于主题爬行策略与算法的研究主要集中于以下几个方面:①爬行策略与爬行算法的通用性研究。互联网中不同类型网站的网页间组织形式相差很大,如何从已经下载的网页中高效、准确地判断待下载页面与主题的相关性,并根据相关性修改下载队列,是主题爬行技术能否成功的关键。目前主要通过修改爬行策略及利用各种软计算方法来实现,但很多时候对于某些网站具有很高的召回率和准确率的方法,对于另一些网站可能并不适用。主题爬行的准确率与召回率有时候与种子URL的起始位置等其他相关因素有很大关系。②“隧道技术”的研究。很多时候主题爬虫需要穿过若干个与爬行主题相关性很低的页面后才会发现一组与主题相关性很高的页面群,穿越中间相关性很低的页面需要隧道技术,如何实现隧道穿越、提高主题爬行准确度是目前很多学者研究的内容。③对于深度Web(deep Web)资源爬行策略的研究。许多深度Web资源存放在数据库中,这些数据库的访问需要用户名、密码等信息,目前常采用半人工辅助方法使主题爬虫访问数据库,如何快速、自动地发现这些数据库并访问这些深度Web资源,也是当前主题爬行技术的研究热点。