Page 163 - 大数据背景下网络安全问题研究
P. 163
» 第六章 网络数据采集及安全研究
6.爬虫身份识别
网络爬虫通过使用http请求的用户代理(User Agent)字段来向网络服务器表明他
们的身份。网络管理员则通过检查网络服务器的日志,使用用户代理字段来辨认哪一
个爬虫曾经访问过以及它访问的频率。用户代理字段可能会包含一个可以让管理员获
取爬虫更多信息的URL。邮件抓取器和其他怀有恶意的网络爬虫通常不会留任何的用
户代理字段内容,或者他们也会将他们的身份伪装成浏览器或者其他的知名爬虫。
对于网络爬虫,留下用户标志信息是十分重要的;这样,网络管理员在需要的
时候就可以联系爬虫的主人。有时,爬虫可能会陷入爬虫陷阱或者使一个服务器超负
荷,这时,爬虫主人需要使爬虫停止。对那些有兴趣了解特定爬虫访问时间网络管理
员来讲,用户标识信息是十分重要的。
7.用户爬虫的例子
(1)网络爬虫体系结构
以下是一系列已经发布的一般用途的网络爬虫(除了主题检索的爬虫)的体系结
构,包括了对不同组件命名和突出特点的简短的描述。
RBSE (Eichmann,1994)是第一个发布的爬虫。它有两个基础程序。第一个是
“spider”,抓取队列中的内容到一个关系数据库中,第二个程序是“mite”,是一个
修改后的www的ASCII浏览器,负责从网络上下载页面。
Web Crawler(Pinkerton,1994)是第一个公开可用的,用来建立全文索引的一个
子程序,他使用库www来下载页面;另外一个程序使用广度优先来解析获取URL并对
其排序;它还包括一个根据选定文本和查询相似程度爬行的实时爬虫。
World Wide Web Worm(Mc Bryan,1994)是一个用来为文件建立包括标题和
URL简单索引的爬虫。索引可以通过grep式的Unix命令来搜索。
Google Crawler (Brin and Page,1998)用了一些细节来描述,但是这些细节仅
仅是关于使用C++和Python编写的、一个早期版本的体系结构。因为文本解析就是全
文检索和URL抽取的过程,所以爬虫集成了索引处理。这里拥有一个URL服务器,用
来给几个爬虫程序发送要抓取的URL列表。在文本解析的时候,新发现的URL传送给
URL服务器并检测这个URL是不是已经存在,如果不存在的话,该URL就加入URL服
务器中。
CobWeb (da Silva et al.1999)使用了一个中央“调度者”和一系列的“分布式
的搜集者”。搜集者解析下载的页面并把找到的URL发送给调度者,然后调度者反过
来分配给搜集者。调度者使用深度优先策略,并且使用平衡礼貌策略来避免服务器超
载。爬虫是使用Perl语言编写的。
Mercator (Heydon and Najork,1999;Najork and Heydon,2001)是一个分布
• 151 •

