网络爬虫基础知识

上传人:第*** 文档编号:122119451 上传时间:2020-03-01 格式:PPT 页数:37 大小:399.50KB
返回 下载 相关 举报
网络爬虫基础知识_第1页
第1页 / 共37页
网络爬虫基础知识_第2页
第2页 / 共37页
网络爬虫基础知识_第3页
第3页 / 共37页
网络爬虫基础知识_第4页
第4页 / 共37页
网络爬虫基础知识_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《网络爬虫基础知识》由会员分享,可在线阅读,更多相关《网络爬虫基础知识(37页珍藏版)》请在金锄头文库上搜索。

1、网络爬虫 网络爬虫 1 网络爬虫简介2 通用网络爬虫和聚焦爬虫3 网络爬虫的抓取策略4 几种常见的网络爬虫5 演示 1 网络爬虫简介 1 1定义1 2用途1 3原理 1 1网络爬虫定义 网络爬虫 Crawler 又被称为网页蜘蛛 网络机器人 在FOAF Friend of a Friend 社区中 更经常的被称为网页追逐者 它是一种按照一定的规则 自动的抓取万维网信息的程序或者脚本 另外一些不常使用的名字还有蚂蚁 自动索引 模拟程序或者蠕虫 1 2用途 很多站点 尤其是搜索引擎 都使用爬虫提供最新的数据 它主要是提供它访问过页面的一个副本 然后 搜索引擎就可以对得到的页面进行索引 以提供快速访

2、问 爬虫可以在web上用来自动执行一些任务 例如检查链接 确认html代码 也可以用来抓取网页上某种特定类型信息 例如抓取电子邮件地址 通常用于垃圾邮件 1 3原理 一个网络爬虫就是一种机器人 或者软件代理 大体上 它从一组要访问的URL链接开始 可以称这些URL为种子 爬虫访问这些链接 它辨认出这些页面的所有超链接 然后添加到这个URL列表 可以称作检索前沿 这些URL按照一定的策略反复访问 2 通用网络爬虫和聚焦爬虫 2 1前言2 2通用网络爬虫2 3聚焦爬虫2 4两种爬虫比较 2 1前言 随着网络的迅速发展 万维网成为大量信息的载体 如何有效地提取并利用这些信息成为一个巨大的挑战 搜索引

3、擎 SearchEngine 例如传统的通用搜索引擎AltaVista Yahoo 和Google等 作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南 但是 这些通用性搜索引擎也存在着一定的局限性 通用网络爬虫的目标就是尽可能多地采集信息页面 在采集时只关注网页采集的数量和质量 并不考虑网页采集的顺序和被采集页面的相关主题 为了解决通用搜索引擎的局限性 定向抓取相关网页资源的聚焦爬虫应运而生 聚焦爬虫与通用爬虫不同 聚焦爬虫并不追求大的覆盖 而将目标定为抓取与某一特定主题内容相关的网页 为面向主题的用户查询准备数据资源 2 2通用网络爬虫 通用网络爬虫从种子链接开始 不断抓取URL

4、网页 将这些URL全部放入到一个有序的待提取的URL队列里 Web信息提取器从这个队列里按顺序取出URL 通过Web上的协议 获取URL所指向的页面 然后从这些页面中分析提取出新的URL 并将它们放到等待提取的URL队列里 通用爬虫就是通过这样一种方式来不断遍历整个互联网 一直到等待提取的URL队列为空或者达到系统给定的停止条件为止 2 3聚焦爬虫 聚焦爬虫根据一定的网页分析算法 过滤与主题无关的链接 保留有用的链接并将其放入等待抓取的URL队列 然后 它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL 并重复上述过程 直到达到系统的某一条件时停止 2 4两种爬虫比较 相对于通用网络爬

5、虫 聚焦爬虫还需要解决三个主要问题 1 对抓取目标的描述或定义 2 对网页或数据的分析与过滤 3 对URL的搜索策略 抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础 而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在 这两个部分的算法又是紧密相关的 3 网络爬虫的抓取策略 3 1网页搜索策略3 2爬行策略 3 1网页搜索策略 网页的抓取策略可以分为深度优先 广度优先和最佳优先三种 深度优先在很多情况下会导致爬虫的陷入 trapped 问题 目前常见的是广度优先和最佳优先方法 3 1 1广度优先搜索策略 广度优先搜索策略是指在抓取过

6、程中 在完成当前层次的搜索后 才进行下一层次的搜索 该算法的设计和实现相对简单 在目前为覆盖尽可能多的网页 一般使用广度优先搜索方法 也有很多研究将广度优先搜索策略应用于聚焦爬虫中 其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大 另外一种方法是将广度优先搜索与网页过滤技术结合使用 先用广度优先策略抓取网页 再将其中无关的网页过滤掉 这些方法的缺点在于 随着抓取网页的增多 大量的无关网页将被下载并过滤 算法的效率将变低 3 1 2最佳优先搜索策略 最佳优先搜索策略按照一定的网页分析算法 预测候选URL与目标网页的相似度 或与主题的相关性 并选取评价最好的一个或几个UR

7、L进行抓取 它只访问经过网页分析算法预测为 有用 的网页 存在的一个问题是 在爬虫抓取路径上的很多相关网页可能被忽略 因为最佳优先策略是一种局部最优搜索算法 因此需要将最佳优先结合具体的应用进行改进 以跳出局部最优点 研究表明 这样的闭环调整可以将无关网页数量降低30 90 3 2爬行策略 以上三种网络特征使得设计网页爬虫抓取策略变得很难 网页爬虫的行为通常是四种策略组合的结果 a 选择策略 决定所要下载的页面 b 重新访问策略 决定什么时候检查页面的更新变化 c 平衡礼貌策略 指出怎样避免站点超载 d 并行策略 指出怎么协同达到分布式抓取的效果 选择策略 就现在网络资源的大小而言 即使很大的

8、搜索引擎也只能获取网络上可得到资源的一小部分 由劳伦斯等人共同做的一项研究指出 没有一个搜索引擎抓取的内容达到网络的16 网络爬虫通常仅仅下载网页内容的一部分 但是大家都还是强烈要求下载的部分包括最多的相关页面 而不仅仅是一个随机的简单的站点 这就要求一个公共标准来区分网页的重要程度 一个页面的重要程度与它自身的质量有关 与按照链接数 访问数得出的受欢迎程度有关 甚至与它本身的网址 后来出现的把搜索放在一个顶级域名或者一个固定页面上的垂直搜索 有关 设计一个好的搜索策略还有额外的困难 它必须在不完全信息下工作 因为整个页面的集合在抓取时是未知的 Cho 曹 等人做了第一份抓取策略的研究 他们的

9、数据是斯坦福大学网站中的18万个页面 使用不同的策略分别模仿抓取 排序的方法使用了广度优先 后链计数 和部分pagerank算法 计算显示 如果你想要优先下载pagerank高的页面 那么 部分PageRank策略是比较好的 其次是广度优先和后链计数 并且 这样的结果仅仅是针对一个站点的 Abiteboul设计了一种基于OPIC 在线页面重要指数 的抓取战略 在OPIC中 每一个页面都有一个相等的初始权值 并把这些权值平均分给它所指向的页面 这种算法与PageRank相似 但是它的速度很快 并且可以一次完成 OPIC的程序首先抓取获取权值最大的页面 实验在10万个幂指分布的模拟页面中进行 但是

10、 实验没有和其它策略进行比较 也没有在真正的WEB页面测试 Baeza Yates等人在从 gr域名和 cl域名子网站上获取的300万个页面上模拟实验 比较若干个抓取策略 结果显示OPIC策略和站点队列长度 都比广度优先要好 并且如果可行的话 使用之前的爬行抓取结果来指导这次抓取 总是十分有效的 重新访问策略 网络具有动态性很强的特性 抓取网络上的一小部分内容可能会花费很长的时间 通常用周或者月来衡量 当爬虫完成它的抓取的任务以后 很多操作是可能会发生的 这些操作包括新建 更新和删除 从搜索引擎的角度来看 不检测这些事件是有成本的 成本就是我们仅仅拥有一份过时的资源 最常使用的成本函数 是新鲜

11、度和过时性 新鲜度 这是一个衡量抓取内容是不是准确的二元值 在时间t内 仓库中页面p的新鲜度是这样定义的 过时性 这是一个衡量本地已抓取的内容过时程度的指标 在时间t时 仓库中页面p的时效性的定义如下 平衡礼貌策略 爬虫的使用对很多工作都是很有用的 但是对一般的社区 也需要付出代价 使用爬虫的代价包括 网络资源 在很长一段时间 爬虫使用相当的带宽高度并行地工作 服务器超载 尤其是对给定服务器的访问过高时 质量糟糕的爬虫 可能导致服务器或者路由器瘫痪 或者会尝试下载自己无法处理的页面 个人爬虫 如果过多的人使用 可能导致网络或者服务器阻塞 对这些问题的一个部分解决方法是漫游器排除协议 Robot

12、sexclusionprotocol 即REP协议 这份协议对于管理员指明网络服务器的那一部分不能到达是一个标准 这个标准没有包括重新访问一台服务器的间隔的建议 虽然访问间隔是避免服务器超载的最有效的办法 最近的商业搜索软件 如AskJeeves MSN和Yahoo可以在robots txt中使用一个额外的 Crawl delay 参数来指明请求之间的延迟 并行策略 一个并行爬虫是并行运行多个进程的爬虫 它的目标是最大化下载的速度 同时尽量减少并行的开销和下载重复的页面 为了避免下载一个页面两次 爬虫系统需要策略来处理爬虫运行时新发现的URL 因为同一个URL地址 可能被不同的爬虫进程抓到 4

13、 几种常见的网络爬虫 4 1Google爬虫4 2Mercator4 3北大天网4 4InternetArchive4 5UbiCrawler 4 1Google爬虫 斯坦福大学设计了用于Google的爬虫 早期的Google爬虫系统由5个模块处理不同的任务 一个URL服务器从磁盘文件读URL列表并将其转发到Crawler上 每个Crawler单独运行在一台机器上 采用单线程异步10方式 一次维持300个连接并行爬行 Crawler将网页传输到存储服务器上压缩并保存 索引进程从HTML页面中抽取链接并存放在不同的文件中 一个URL解析器读取这些链接文件并转化为绝对路径 由URL服务器读取 后期

14、Google的改进主要有 1 采用自有的文件系统 GFS 和数据库系统 BigTable 来存取数据 2 采用MapReduce技术来分布式处理各种数据的运算 4 2Mercator 康柏系统研究中心的AIlanHeydon和MarcNajork设计了名叫Mercator的爬行器 系统采用Java的多线程同步方式实现并行处理 并加入了很多优化策略如DNS缓冲 延迟存储等以提升爬行器运行效率 它采用的数据结构可以不管爬行规模的大小 在内存中只占有限的空间 这些数据结构的大部分都在磁盘上 在内存中只存放有限的部分 伸缩性很强 4 3北大天网 北大天网是国内高性能网络爬虫的先行者 它的架构经历了集中

15、式向分布式的改进 能够胜任10亿级的网页搜索 其基于站点的两阶段哈希机制有效地解决了搜索过程中Crawler动态加入和退出的问题 4 4InternetArchive InternetArchive的每台Crawler同时对64个站点进行爬行 每个站点被唯一分派到一个Crawler上 Crawler从磁盘上读取URL列表 采取异步10方式下载网页 并抽取链接 如果该链接属于本机抓取 则放入待抓取列表 存到磁盘上 并周期性地传送到其它Crawler上 4 5UbiCrawler UbiCrawler项目是一个高性能的爬虫 主要侧重于完全分布性和高容错率 它的主要特性包括 平台独立性 良好的伸缩性 高效的分配函数 各功能模块的完全分布式 没有单点故障的问题 5 演示

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号