首页 > 编程知识 正文

scrapy分布式爬虫框架,python怎么做爬虫

时间:2023-05-03 19:23:13 阅读:38492 作者:4773

通过以上介绍,我相信大家已经对Python爬虫有了初步的了解。 对于常见的网站爬虫,也应该很容易实现。 我们发现,使用单爬虫获取数据时存在明显的缺陷——,如果需要大规模的数据收集,这种速度很难满足我们的需要。 此时,需要分散型爬行动物的帮助。 因为很少介绍分布式系统,所以感兴趣的朋友可以自己调查理解。 重点关注分散爬行动物。 下面是一些简单的介绍。

.个人资料一. 什么是分布式爬虫:

1 .默认情况下,使用scrapy框架进行爬行时使用独立爬行器。 也就是说,只能在一台计算机上工作。 因为爬虫调度程序的队列队列出队和set集合只能在本地创建,而其他计算机无法访问其他计算机上的内存和内容。

2 .分布式爬虫实现了多台计算机使用一个通用的爬虫程序,可以同时在多台计算机上部署和执行爬虫任务。 这样可以提高爬行动物的速度,实现分散型爬行动物。

二.分布式爬虫的前提:

1 .使所有计算机都能正常运行scrapy命令、启动爬虫是计算机硬件最低水平、计算机系统环境、网络等多方面的基本需要,不再赘述。

2 .允许所有爬虫程序访问同一队列的一个set集合。

关于第二个条件,需要以下特别声明:

使用scrapy_redis满足第二个条件。 要确保多台计算机与一个queue队列共享set集合,scrapy框架必须与scrapy_redis结合使用。 分布式爬行器可以让所有计算机上的爬行器程序从同一队列检索请求,并为每台计算机检索请求,直到请求了所有请求。

三. 分布式爬虫的适用范围/要求:

1 .分布式爬虫对电脑的性能有一定的要求(特别是处理器,即所谓的cpu )。

2 .分布式爬虫对网速也有一定的要求。

注意:如果计算机性能和网速不好,分布式爬行动物反而比单一爬行动物效率低。 并不是总是可以使用分布式爬行动物。 如果需要大规模检索数据,而不满足单个爬行器的效率,并且满足硬件条件,请使用分布式爬行器。 当然,由于大多数情况下对硬件有要求,刚成立的小公司可能负担不起这样的成本。

四.分布式爬虫经常和redis数据库一起使用:

redis数据有几个特点,首先它的优点如下:

1 .默认情况下使用持久化数据方案

2 .小巧易用

3 .保存数据量大时,启动速度快

4 .数据库中的数据和存储器中的数据可以相互访问

最大的缺点是,从安全角度看,数据持久化可能很容易崩溃,导致数据丢失

五.要实现分布式爬虫,首先要配置服务器主从:

主从结构的目的:

如果主服务器崩溃,并且数据库中仍有数据,则可以将其中的一个slave重新设置为主服务器,以实现恢复redis正常运行的备份功能。

2 .一个redis服务器负责读写,性能低,从未通过主节点减轻一个redis的压力。

六. redis主从的配置:

redis作为缓存服务器,主要是将数据缓存在内存中,但一台机器的内存和性能有限,对redis数据库读写数据的量较大时,一台redis无法满足需要。 在这种情况下,在多台机器上部署redis并写入数据的redis被称为master,需要仅负责读取数据的redis

七. redis主从的特点:

1.master只负责数据的写入,slave只负责数据的读取。

2 .创建slave后,将同步命令发送到master,master接收命令后,将数据同步到slave。

3 .只有一个3.master,可以有多个slave。

.Redis安装前大致了解了redis的作用。 现在进入实际操作,从基本安装开始。

访问redis下载链接下载最新版本。 如图所示,本文采用3.2.100版。

下载链接为https://github.com/Microsoft archive/redis/releases

2 .下载完成后,解压缩到Python对等目录(易于管理)。 为了便于使用,还可以将redis路径添加到Path环境变量中。

3 .解压缩完成后,找到部署文件redis.windows.conf,在任何编译器中将其打开,并根据需要进行修改

首先签出第56行:

然后在第75行中添加“' protected-mode no '”

最后在第123行中添加“' daemonize yes '”

4 .打开终端并进入redis文件夹后,输入命令redis-server redis.windows.conf打开服务端。 显示下图所示画面时,表示服务端正常启动。 服务端打开后,请不要在禁用redis之前关闭。 否则,后续的所有操作都无法完成。

5 .打开新终端,输入命令redis-cli -h 127.0.0.1 -p 6379,创建客户端,设置键值对,设置值set key1 XX获取值get key1。

6.b电脑连接到a电脑时,需要获取a电脑的IP。 b电脑需要设定redis-cli -h A电脑的IP。 b在电脑终端输入命令get key1,就可以取得刚才a电脑的key1的值。 如果错了,就需要设定a电脑的配置文件。 bind127.0.0.1评论

8.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。