随笔分类 - Web Crawler
摘要:分布式网络爬虫的研究与实现摘 要 随着互联网的高速发展,在互联网搜索服务中,搜索引擎扮演着越来越重要的角色。网络爬虫是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集网页,这些页面用于建立索引从而为搜索引擎提供支持。面对当前极具膨胀的网络信息,集中式的单机爬虫早已无法适应目前的互联网信息规模,因此高性能的分布式网络爬虫系统成为目前信息采集领域研究的重点。 本文对网络爬虫原理、分布式架构设计以及网络爬虫中的关键模块、瓶颈问题及解决办法进行了相关研究。论文工作主要表现为:1、引入一致性哈希算法,用于解决URL任务分发策略、爬虫主机间负载均衡、单机热点问题,确保分布式爬虫系统具有良好的可扩展性
阅读全文
摘要:URL队列被爬行进程赋予一个URL(或者来自于其他爬行进程的主机分离器)。它维护了一个包含大量URL的队列,并且每当有爬虫线程寻找URL的时候,它都会按照某种顺序重新排序。以何种顺序返回队列中的URL,需要有两个方面的考虑。 第一个要考虑的是具有很高更新频率的高质量页面,即页面的优先级。一个页面的优先级权值应该是由它的改变频率和它本身网页质量(使用一些恰当的质量评估方法)共同决定的。这是很必要的,因为在每次抓取的时候,很多更新频率很高的页面都是质量很差的垃圾页面。 第二个要考虑的就是礼貌策略:我们必须避免在很短的时间间隔内重复抓取同一个主机。因此,如果URL队列被设计成简单的优先级队列的话,.
阅读全文
摘要:什么是robots.txt文件? robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的。 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据。Robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私...
阅读全文
摘要:前言: 网络爬虫抓取下来的页面,都是大文本,应该如何存储呢? 我觉得,如果存储在mysql 或是 sqlserver这种关系型数据库当中,应该不是很恰当的。首先,页面相对独立,基本没什么关系型可言,只有url或是描文本->页面这种简单的关系,而关系型数据库系统为了支持关系以及高效查询会增加很多额外的开销,这样得不偿失。不仅如此,爬虫在抓取页面工程中,效率应该很高,如果用关系型数据库存页面的华,短时间内会有大量的数据插入I/O,插入肯定会是一个瓶颈问题,这对数据库维护网络以及物理磁盘来说,压力也是比较大的。因此,我觉得直接存储为数据文本比较合适,开源的larbin爬虫,也采用的是文本方式的
阅读全文
摘要:最近,一直在做网络爬虫相关的东西。 看了一下开源C++写的larbin爬虫,仔细阅读了里面的设计思想和一些关键技术的实现。1、larbin的URL去重用的很高效的bloom filter算法; 2、DNS处理,使用的adns异步的开源组件; 3、对于url队列的处理,则是用部分缓存到内存,部分写入文件的策略。 4、larbin对文件的相关操作做了很多工作 5、在larbin里有连接池,通过创建套接字,向目标站点发送HTTP协议中GET方法,获取内容,再解析header之类的东西 6、大量描述字,通过poll方法进行I/O复用,很高效 7、larbin可配置性很强 8、作者所使用的大量数据结构.
阅读全文
摘要:题外话: 很久没写博客了,因为前一段时间过年在家放假,又因为自己保研了,所以一直比较闲。整个假期,基本都在准备毕业设计的相关内容。我毕业设计的方向是关于搜索引擎的,因此,期间阅读了大量相关论文。阅读了很多论文和技术书籍之后,我有几点感触。首先,发现国内很多论文或是书籍只是大量引述其他人的研究结果,自己的独特的见解非常少,一篇文章,70%的内容都是在以介绍为主,感觉发这样的论文是没有什么意义的。相反,国外尤其是像MIT,斯坦福,google之类的领域专家发表很多极其优秀的论文,阅读后给人一种震撼。我之前在网上搜索技术文章或是论文的时候经常绕过英文的,现在发现国外的确有非常多优秀的外文文章,所以无
阅读全文
浙公网安备 33010602011771号