教育技术系网络爬虫1、网络爬虫简介2、通用网络爬虫和聚焦爬虫3、网络爬虫的抓取策略4、几种常见的网络爬虫5、Metaseeker1、网络爬虫简介1.1定义1.2用途1.3原理1.1网络爬虫定义网络爬虫(Crawler)又被称为网页蜘蛛,网络机器人,在FOAF社区中,更经常的被称为网页追逐者,它是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。1.2用途很多站点,尤其是搜索引擎,都使用爬虫提供最新的数据,它主要用于提供它访问过页面的一个副本,然后,搜索引擎就可以对得到的页面进行索引,以提供快速访问。蜘蛛也可以在web上用来自动执行一些任务,例如检查链接,确认html代码;也可以用来抓取网页上某种特定类型信息,例如抓取电子邮件地址(通常用于垃圾邮件)。1.3原理一个网络蜘蛛就是一种机器人,或者软件代理。大体上,它从一组要访问的URL链接开始,可以称这些URL为种子。爬虫访问这些链接,它辨认出这些页面的所有超链接,然后添加到这个URL列表,可以称作检索前沿。这些URL按照一定的策略反复访问。2、通用网络爬虫和聚焦爬虫2.1前言2.2通用网络爬虫2.3聚焦爬虫2.4两种爬虫比较2.1前言随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(SearchEngine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性。为了解决通用搜索引擎的局限性,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。2.2通用网络爬虫通用网络爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。2.3聚焦爬虫聚焦爬虫根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。2.4两种爬虫比较通用网络爬虫聚焦爬虫目标通用网络爬虫的目标是尽可能多的采集信息页面,而在这一过程中它并不太在意页面采集的顺序和被采集页面的相关主题。这需要消耗很多的系统资源和网络带宽,并且对这些资源的消耗并没有换来采集页面的较高利用率。聚焦爬虫的目标是尽可能快地爬行、采集尽可能多的与预先定义好的主题相关的网页。聚焦爬虫可以通过对整个Web按主题分块采集,并将不同块的采集结果整合到一起,以提高整个Web的采集覆盖率和页面利用率。相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:(1)对抓取目标的描述或定义;(2)对网页或数据的分析与过;(3)对URL的搜索策略。抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。3、网络爬虫的抓取策略3.1网页搜索策略3.2爬行策略3.1网页搜索策略网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。3.1.1广度优先搜索策略广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。3.1.2最佳优先搜索策略最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。研究表明,这样的闭环调整可以将无关网页数量降低30%-90%。3.2爬行策略更新频率太快了数据量好大啊页面是动态的呀以上三种网络特征使得设计网页爬虫抓取策略变得很难。网页爬虫的行为通常是四种策略组合的结果:(a)选择策略,决定所要下载的页面;(b)重新访问策略,决定什么时候检查页面的更新变化;(c)平衡礼貌策略,指出怎样避免站点超载;(d)并行策略,指出怎么协同达到分布式抓取的效果。4、几种常见的网络爬虫4.1Google爬虫4.2Mercator4.3北大天网4.4InternetArchive4.5UbiCrawler4.6IRLBOT4.1Google爬虫斯坦福大学设计了用于Google的爬虫早期的Google爬虫系统由5个模块处理不同的任务。一个URL服务器从磁盘文件读URL列表并将其转发到Crawler上。每个Crawler单独运行在一台机器上,采用单线程异步10方式,一次维持300个连接并行爬行。Crawler将网页传输到存储服务器上压缩并保存。索引进程从HTML页面中抽取链接并存放在不同的文件中。一个URL解析器读取这些链接文件并转化为绝对路径,由URL服务器读取。后期Google的改进主要有:(1)采用自有的文件系统(GFS)和数据库系统(BigTable)来存取数据;(2)采用MapReduce技术来分布式处理各种数据的运算。4.2Mercator康柏系统研究中心的AIlanHeydon和MarcNajork设计了名叫Mercator的爬行器。系统采用Java的多线程同步方式实现并行处理,并加入了很多优化策略如DNS缓冲、延迟存储等以提升爬行器运行效率。它采用的数据结构可以不管爬行规模的大小,在内存中只占有限的空间。这些数据结构的大部分都在磁盘上,在内存中只存放有限的部分,伸缩性很强。4.3北大天网北大天网是国内高性能网络爬虫的先行者,它的架构经历了集中式向分布式的改进,能够胜任10亿级的网页搜索,其基于站点的两阶段哈希机制有效地解决了搜索过程中Crawler动态加入和退出的问题。4.4InternetArchiveInternetArchive的每台Crawler同时对64个站点进行爬行,每个站点被唯一分派到一个Crawler上。Crawler从磁盘上读取URL列表,采取异步10方式下载网页,并抽取链接。如果该链接属于本机抓取,则放人待抓取列表,存到磁盘上,并周期性地传送到其它Crawler上。4.5UbiCrawlerUbiCrawler项目是一个高性能的爬虫,主要侧重于完全分布性和高容错率。它的主要特性包括:平台独立性、良好的伸缩性、高效的分配函数、各功能模块的完全分布式、没有单点故障的问题。4.6IRLBOTIRLBOT是TAMU开发的大规模网络Crawler,它们宣称已经抓取了60亿网页。该爬虫能胜任100亿级网页爬行,可伸缩性很强,在“礼貌”爬行和反垃圾页面上做了很多工作。5、Metaseeker5.1Metaseeker的特点5.2Metaseeker的使用5.2.15.1Metaseeker的特点5.1.1定义MetaSeeker是一个Web网页抓取/数据抽取/页面信息提取工具包,能够按照用户的指导,从Web页面上筛选出需要的信息,并输出含有语义结构的提取结果文件(XML文件)。5.1.2优点众所周知,Web页面显示的信息是给人阅读的,对于机器来说,是无结构的,MetaSeeker解决了一个关键问题:将无结构的Web页面信息转换成有结构的适于机器处理的信息。可以应用于专业搜索、Mashup和Web数据挖掘领域。5.1.3工具包的组成(a)MetaStudio:是Web页面信息结构描述工具,提供GUI界面,作为Firefox扩展(Firefoxextension)发行,推荐与MetaCamp和DataStore配套使用,这样信息结构描述文件和各种信息提取指令文件就可以上载到MetaCamp和DataStore服务器,以拥有协同描述页面信息结构和分享信息提取成果的能力。(b)DataScraper:是Web页面信息提取(网页抓取/抽取)工具,利用MetaStudio生成的各种信息提取指令文件,对特定页面的信息进行连续提取,并将信息存储在DataStore服务器中。提供GUI界面,作为Firefox扩展发行,技术核心是一个自研的工作流引擎,由信息提取工作流指令文件驱动。(c)MetaCamp:是存储和管理信息结构描述文件的服务器。作为一个应用(application)部署在Tomcat等Servlet容器中。(d)DataStore:是存储和管理信息提取线索、各种信息提取指令文件和信息提取结果文件的服务器,集成Lucenev2.3.2技术,能够为结果文件建立索引。作为一个应用(application)部署在Tomcat等Servlet容器中。5.2Metaseeker的使用5.2.1安装5.2.1.1硬件环境要求Web页面语义结构描述工具MetaStudio的工作台比较复杂,显示器的分辨率在1280X1024以上才能完整展现。Web页面信息提取工具DataScraper对显示器分辨率没有特别的要求。5.2.1.2软件环境要求虽然语义结构描述和网页数据抓取规则生成软件MetaStudio和网页数据抓取和格式化软件DataScraper都作为Firefox的扩展发行的,但两者对软件环境要求是不一样的,同一个DataScraper软件包可以安装在不同操作系统和不同版本的Firefox上,而MetaStudio针对不同的系统软件环境有不同的发行包,需要区别对待。5.2.1.3下载和安装下载和安装方式有两种:(1)下载的同时进行安装:在下载弹出窗口中选择“运行”,并指定运行程序Firefox(2)下载保存后安装:在下载弹出窗口中选择“保存”,以后安装5.2.2使用方法Metaseeker的一位使用者免费提供了Metaseeker的使用教程。下面介绍一下学习总结以及使用中的一些问题。5.2.2.1三种映射的区别抓取网页信息时需要将各字段值映射到已构建好的信息属性(我们要抓取的内容名称)中,有内容映射、FreeFormat映射和样例复制品映射三种。下面用一个表格来说明一下三者的区别。内容映射FreeFormat映射样例复制品映射用途只对字段进行映射可对字段和字段组顶层容器进行映射只对顶层容器映射原理对网页代码的位置进行映射对网页代码的结构进行映射对网页代码的结构进行映射优劣易受网页更新影响1.基本不受网页代码位置变化影响2.对顶层容器映射时,只需对首条记录做一次映射即可需对顶层容器做两次映射适用多数针对text,亦可对url,自由表达式等具有id、class标志提取单一数据1.自动为此信息属性添加block特性2.并默认为提取此代码段下所有文本内容3.以上两个设定均可自由修改5.2.2.2总结对某一信息属性而言,若能进行FreeFormat映射,更精准提取方法有:(1)先为此信息属性做一次内容映射,再利用合适的父级节点为其做一次FreeFormat映射。(2)已先做了FreeFormat映射,可手动去掉block特性,然后,再做一次精准的内容映射。若提取的是页面的多条记录,则能够采用FreeFormat映射的节点条件如下:(1)此字段首值精准对应节点的各级父节点(2)且父节点不可包含两条及以上记录的内容(3)且父节点的class或id有