12 单任务版爬虫城市列表解析器实现
Ⅰ. 简介
一. 什么是分布式爬虫:
1. 默认情况下,我们使用scrapy框架进行爬虫时使用的是单机爬虫,就是说它只能在一台电脑上运行,因为爬虫调度器当中的队列queue去重和set集合都只能在本机上创建的,其他电脑无法访问另外一台电脑上的内存和内容。
2. 分布式爬虫实现了多台电脑使用一个共同的爬虫程序,它可以同时将爬虫任务部署到多台电脑上运行,这样可以提高爬虫速度,实现分布式爬虫。
二. 分布式爬虫的前提:
1. 要保证每一台计算机都能够正常的执行scrapy命令,能够启动爬虫,这是对计算机硬件的zui低水平、计算机系统环境和网络等多方面的基本需求,不再赘述。
2. 要保证所有的爬虫程序可以访问同一个队列一个set集合。
针对第二个条件,需要以下特殊声明:
想要满足第二个条件,我们要使用scrapy_redis。想要保证多台机器共用一个queue队列和set集合,在scrapy框架中,是需要结合scrapy_redis完成的。分布式爬虫可以让所有机器上的爬虫程序,从同一个queue队列中获取request请求,并且每个机器取出request,请求的对象是不一样的,直到所有的request被请求完毕。
三. 分布式爬虫的适用范围/要求:
1. 分布式爬虫对电脑的性能有一定的要求(特别是处理器,也就是常说的cpu)。
2. 分布式爬虫对网速也有一定的要求 。
注意:电脑性能和网速如果不是很好的话,分布式爬虫效率反而不如单一爬虫。并不是任何时候都可以使用分布式爬虫,如果你需要大规模获取数据,不满足于单一爬虫的效率,而且硬件条件能够得到满足,那么就使用分布式爬虫吧。当然,大部分情况下,由于对硬件有要求,一些刚成立的小公司可能负担不起这样的成本。
四. 分布式爬虫经常和redis数据库一起使用:
redis数据有几个特点,首先它的优点是:
1. 默认使用持久化数据方式
2. 体积小,使用方便
3. 如果存储数据量比较大的话,启动速度很快
4. 数据库中的数据和内存中的数据可以相互访问
最主要的缺点是:从安全性角度来说,数据持久化可能会容易崩溃,造成数据丢失
公开笔记对他人可见,有机会被管理员评为“优质笔记”
{{ noteEditor.content.length }}/2000
讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。
课程大纲







