天津市城乡建设局网站,宜兴做网站公司,小程序推广话术案例,如何做别人的网站目录
3.爬虫身份识别
4.用户爬虫的例子
4.1 开源爬虫
网络爬虫的组成
控制器
解析器
资源库 3.爬虫身份识别 网络爬虫通过使用http请求的用户代理#xff08;User Agent#xff09;字段来向网络服务器表明他们的身份。网络管理员则通过检查网络服务器的日志#xff0…目录
3.爬虫身份识别
4.用户爬虫的例子
4.1 开源爬虫
网络爬虫的组成
控制器
解析器
资源库 3.爬虫身份识别 网络爬虫通过使用http请求的用户代理User Agent字段来向网络服务器表明他们的身份。网络管理员则通过检查网络服务器的日志使用用户代理字段来辨认哪一个爬虫曾经访问过以及它访问的频率。用户代理字段可能会包含一个可以让管理员获取爬虫更多信息的URL。邮件抓取器和其他怀有恶意的网络爬虫通常不会留任何的用户代理字段内容或者他们也会将他们的身份伪装成浏览器或者其他的知名爬虫。 对于网路爬虫留下用户标志信息是十分重要的这样网络管理员在需要的时候就可以联系爬虫的主人。有时爬虫可能会陷入爬虫陷阱或者使一个服务器超负荷这时爬虫主人需要使爬虫停止。对那些有兴趣了解特定爬虫访问时间网络管理员来讲用户标识信息是十分重要的。 4.用户爬虫的例子 以下是一系列已经发布的一般用途的网络爬虫除了主题检索的爬虫的体系结构包括了对不同组件命名和突出特点的简短的描述。 RBSEEichmann1994是第一个发布的爬虫。它有两个基础程序。第一个是“spider”抓取队列中的内容到一个关系数据库中第二个程序是“mite”是一个修改后的www的ASCII浏览器负责从网络上下载页面。 WebCrawlerPinkerton1994是第一个公开可用的用来建立全文索引的一个子程序他使用库www来下载页面另外一个程序使用广度优先来解析获取URL并对其排序它还包括一个根据选定文本和查询相似程度爬行的实时爬虫。 World Wide Web WormMcBryan1994是一个用来为文件建立包括标题和URL简单索引的爬虫。索引可以通过grep式的Unix命令来搜索。 Google CrawlerBrin and Page1998用了一些细节来描述但是这些细节仅仅是关于使用C和Python编写的、一个早期版本的体系结构。因为文本解析就是全文检索和URL抽取的过程所以爬虫集成了索引处理。这里拥有一个URL服务器用来给几个爬虫程序发送要抓取的URL列表。在文本解析的时候新发现的URL传送给URL服务器并检测这个URL是不是已经存在如果不存在的话该URL就加入到URL服务器中。 CobWebda Silva et al.1999使用了一个中央“调度者”和一系列的“分布式的搜集者”。搜集者解析下载的页面并把找到的URL发送给调度者然后调度者反过来分配给搜集者。调度者使用深度优先策略并且使用平衡礼貌策略来避免服务器超载。爬虫是使用Perl语言编写的。 MercatorHeydon and Najork1999Najork and Heydon2001是一个分布式的模块化的使用java编写的网络爬虫。它的模块化源自于使用可互换的的“协议模块”和“处理模块”。协议模块负责怎样获取网页例如使用HTTP处理模块负责怎样处理页面。标准处理模块仅仅包括了解析页面和抽取URL其他处理模块可以用来检索文本页面或者搜集网络数据。 WebFountainEdwards et al.2001是一个与Mercator类似的分布式的模块化的爬虫但是使用C编写的。它的特点是一个管理员机器控制一系列的蚂蚁机器。经过多次下载页面后页面的变化率可以推测出来这时一个非线性的方法必须用于求解方程以获得一个最大的新鲜度的访问策略。作者推荐在早期检索阶段使用这个爬虫然后用统一策略检索就是所有的页面都使用相同的频率访问。 PolyBotShkapenyuk and Suel2002是一个使用C和Python编写的分布式网络爬虫。它由一个爬虫管理者一个或多个下载者一个或多个DNS解析者组成。抽取到的URL被添加到硬盘的一个队列里面然后使用批处理的模式处理这些URL。平衡礼貌方面考虑到了第二、三级网域因为第三级网域通常也会保存在同一个网络服务器上。 WebRACEZeinalipour-Yazti and Dikaiakos2002是一个使用java实现的拥有检索模块和缓存模块的爬虫它是一个很通用的称作eRACE的系统的一部分。系统从用户得到下载页面的请求爬虫的行为有点像一个聪明的代理服务器。系统还监视订阅网页的请求当网页发生改变的时候它必须使爬虫下载更新这个页面并且通知订阅者。WebRACE最大的特色是当大多数的爬虫都从一组URL开始的时候WebRACE可以连续地的接收抓取开始的URL地址。 UbicrawerBoldi et al.2004是一个使用java编写的分布式爬虫。它没有中央程序。它由一组完全相同的代理组成分配功能通过主机前后一致的散列计算进行。这里没有重复的页面除非爬虫崩溃了然后另外一个代理就会接替崩溃的代理重新开始抓取。爬虫设计为高伸缩性和允许失败的。 FAST CrawlerRisvik and Michelsen2002是一个分布式的爬虫在Fast SearchTransfer中使用关于其体系结构的一个大致的描述可以在[citation needed]找到。 Labrador一个工作在开源项目Terrier Search Engine上的非开源的爬虫。 TeezirCrawler是一个非开源的可伸缩的网页抓取器在Teezir上使用。该程序被设计为一个完整的可以处理各种类型网页的爬虫包括各种JavaScript和HTML文档。爬虫既支持主题检索也支持非主题检索。 Spinn3r一个通过博客构建反馈信息的爬虫。Spinn3r是基于java的它的大部分的体系结构都是开源的。 HotCrawler一个使用c语言和php编写的爬虫。 ViREL Microformats Crawler搜索公众信息作为嵌入到网页的一小部分。 除了上面列出的几个特定的爬虫结构以外还有ChoCho and Garcia-Molina2002和ChakrabartiChakrabarti2003发布的一般的爬虫体系结构。 4.1 开源爬虫 DataparkSearch是一个在GNU GPL许可下发布的爬虫搜索引擎。 GNU Wget是一个在GPL许可下使用C语言编写的命令行式的爬虫。它主要用于网络服务器和FTP服务器的镜像。 Heritrix是一个互联网档案馆级的爬虫设计的目标为对大型网络的大部分内容的定期存档快照是使用java编写的。 Ht//Dig在它和索引引擎中包括了一个网页爬虫。 HTTrack用网络爬虫创建网络站点镜像以便离线观看。它使用C语言编写在GPL许可下发行。 ICDL Crawler是一个用C编写跨平台的网络爬虫。它仅仅使用空闲的CPU资源在ICDL标准上抓取整个站点。 JSpider是一个在GPL许可下发行的高度可配置的可定制的网络爬虫引擎。 LLarbin由Sebastien Ailleret开发 Webtools4larbin由Andreas Beder开发 Methabot是一个使用C语言编写的高速优化的使用命令行方式运行的在2-clause BSD许可下发布的网页检索器。它的主要的特性是高可配置性模块化它检索的目标可以是本地文件系统HTTP或者FTP。 Nutch是一个使用java编写在Apache许可下发行的爬虫。它可以用来连接Lucene的全文检索套件 Pavuk是一个在GPL许可下发行的使用命令行的WEB站点镜像工具可以选择使用X11的图形界面。与wget和httprack相比他有一系列先进的特性如以正则表达式为基础的文件过滤规则和文件创建规则。 WebVac是斯坦福WebBase项目使用的一个爬虫。 WebSPHINXMiller and Bharat1998是一个由java类库构成的基于文本的搜索引擎。它使用多线程进行网页检索html解析拥有一个图形用户界面用来设置开始的种子URL和抽取下载的数据 WIRE-网络信息检索环境Baeza-Yates和Castillo2002是一个使用C编写在GPL许可下发行的爬虫内置了几种页面下载安排的策略还有一个生成报告和统计资料的模块所以它主要用于网络特征的描述 LWPRobotUALangheinrich2004是一个在Perl5许可下发行的可以优异的完成并行任务的Perl类库构成的机器人。 Web Crawler是一个为.net准备的开放源代码的网络检索器C#编写。 Sherlock Holmes收集和检索本地和网络上的文本类数据文本文件网页该项目由捷克门户网站中枢Czech web portal Centrum赞助并且主用商用于这里它同时也使用在。 YaCy是一个基于P2P网络的免费的分布式搜索引擎在GPL许可下发行 Ruya是一个在广度优先方面表现优秀基于等级抓取的开放源代码的网络爬虫。在英语和日语页面的抓取表现良好它在GPL许可下发行并且完全使用Python编写。按照robots.txt有一个延时的单网域延时爬虫。 Universal Information Crawler快速发展的网络爬虫用于检索存储和分析数据 Agent Kernel当一个爬虫抓取时用来进行安排并发和存储的java框架。 是一个使用C#编写需要SQL Server 2005支持的在GPL许可下发行的多功能的开源的机器人。它可以用来下载检索存储包括电子邮件地址文件超链接图片和网页在内的各种数据。 Dine是一个多线程的java的http客户端。它可以在LGPL许可下进行二次开发。 网络爬虫的组成 在网络爬虫的系统框架中主过程由控制器解析器资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页进行页面的处理主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源一般都采用大型的数据库存储如Oracle数据库并对其建立索引。 控制器 控制器是网络爬虫的中央控制器它主要是负责根据系统传过来的URL链接分配一线程然后启动线程调用爬虫爬取网页的过程。 解析器 解析器是负责网络爬虫的主要部分其负责的工作主要有下载网页的功能对网页的文本进行处理如过滤功能抽取特殊HTML标签的功能分析数据功能。 资源库 主要是用来存储网页中下载下来的数据记录的容器并提供生成索引的目标源。中大型的数据库产品有Oracle、Sql Server等。