scrapy的使用--Rcrapy-Redis
Scrapy-Redis分布式爬虫组件
Scrapy是一个框架,他本身是不支持分布式的。如果我们想要做分布式的爬虫。就需要借助一个组件叫做Scrapy-Redis。这个组件正式利用了Redis可以分布式的功能,继承到Scrapy框架中,使得爬虫可以进行分布式,可以充分的利用资源(多个ip,更多带宽,同步爬取)来提高爬虫的爬取效率。
-分布式爬虫组件的优点:
1.可以充分利用多台机器的带宽
2.可以充分利用多台机器的ip地址
3.多台机器工作,io频率提高,爬取效率更高
-分布式爬虫需要解决的问题:
1.分布式爬虫是好几个台式机器在同时运行,保证不同的机器爬取页面的时候不会出现重复爬取的问题。
2.同样,分布式爬虫在不同的机器上运行,在把数据爬取完后如何保存在同一个地方。
Scrapy 框架图
Scrapy-Redis
-分布式架构图:
Redis教程:
概述
redis是一种支持分布式的nosql数据库,他的数据是深存在内存中,同时可以将数据持久化,并且他比memcached 支持更多的数据结构(string,list,set,sorted set(有序集合),hash(hash)
redis使用的场景:
1.登录会话存储在redis中。memcached(缓存)
2.作为消息队列,‘celary’使用redis作为中间人(消息队列)
3.排行版/计数器:比如一些秀场类的项目,经常会有一些钱多少名的主播排名,或者点赞数之类的(计数器)
4. 当前在线人数,会显示当前系统多少在线人数。
5.一些常用的数据缓存:一些论坛,模块不会经常变化。但是每次访问首页都要从MySQL中获取,可以在redis中缓存起来,不用每次请求数据库。
6.把前200篇文章缓存或者评论缓存;一般用户浏览网站,只会浏览前面一部分文章或者评论,那么可以把前面200篇文章和对应的评论缓存起来,用户访问超时的,就访问数据库,并且以后文章超过200篇,则把之前的文章删除。
7.好友关系,微博的好友关系使用redis实现。
8.发布和订阅功能,可以用来聊天软件
具体分布式区别:https://www.cnblogs.com/457248499-qq-com/p/7392653.html
scrapy的使用--Rcrapy-Redis的更多相关文章
- scrapy与redis分布式组件
Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础 ...
- Scrapy 和 scrapy-redis的区别
Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础 ...
- scrapy入门与进阶
Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非 ...
- Python爬虫框架Scrapy教程(1)—入门
最近实验室的项目中有一个需求是这样的,需要爬取若干个(数目不小)网站发布的文章元数据(标题.时间.正文等).问题是这些网站都很老旧和小众,当然也不可能遵守 Microdata 这类标准.这时候所有网页 ...
- scrapy实战2分布式爬取lagou招聘(加入了免费的User-Agent随机动态获取库 fake-useragent 使用方法查看:https://github.com/hellysmile/fake-useragent)
items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentati ...
- scrapy基础知识之 Scrapy 和 scrapy-redis的区别:
Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础 ...
- 浅析scrapy与scrapy_redis区别
最近在工作中写了很多 scrapy_redis 分布式爬虫,但是回想 scrapy 与 scrapy_redis 两者区别的时候,竟然,思维只是局限在了应用方面,于是乎,搜索了很多相关文章介绍,这才搞 ...
- scrapy架构流程
1.爬虫spiders将请求通过引擎传递给调度器scheduler 2.scheduler有个请求队列,在请求队列中拿出请求给下载器,downloader 3.downloader从Internet的 ...
- 浅析scrapy与scrapy-redis的区别
首先,要了解两者的区别,就要清楚scrapy-redis是如何产生的,有需求才会有发展,社会在日新月异的飞速发展,大量相似网页框架的飞速产生,人们已经不满足于当前爬取网页的速度,因此有了分布式爬虫,让 ...
- Scrapy-redis 分布式
分布式:架构方式 多台真实机器+爬虫(如requests,scrapy等)+任务共享中心 多台虚拟机器(或者部分虚拟部分真实)+爬虫(如requests,scrapy等)+任务共享中心 多台容器级虚拟 ...
随机推荐
- D. Who killed Cock Robin--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 题目描述 由于系统限制,C题无法在此评测,此题为现场赛的D题 Who killed Cock Robin? I, ...
- java url中文参数乱码
String city=new String(city_name.getBytes("ISO-8859-1"), "UTF-8");
- linux:lrzsz安装
Linux中的lrzsc是linux里可代替ftp上传和下载的程序. yum install lrzsc 没有可用软件包 lrzsc. 这时使用 -y即可安装 centos安装:yum -y inst ...
- Jeecg集成Swagger-ui
<context:component-scan base-package="springfox"/> <bean class="org.jeecgfra ...
- Lambda表达式演变历史
/// <summary> /// 爬虫委托 /// </summary> /// <param name="crawlerCode">爬虫编码 ...
- mysql高效导入导出load data [infile][outfile]用法
一.MySQL高效导入数据的方法load data infile load data infile语句从一个文本文件中以很高的速度读入一个表中.使用这个命令之前,mysqld进程(服务)必须已经在运行 ...
- html5本地存储(二)--- SQLList
html5内置了2种本地数据库,一是被称为“SQLLite”,可以通过SQL语言来访问文件型SQL数据库.二是被称为“indexedDB” 的NoSQL类型的数据库 这篇主要讲SQLLite 在js中 ...
- mybatis的实际应用
简单基本的增删改查语句就不说了,直接从一对一,一对多的关系开始: association联合:联合元素用来处理“一对一”的关系; collection聚集:聚集元素用来处理“一对多”的关系; MyBa ...
- zabbix--源码安装部署zabbix3.2
zabbix运行在lamp环境或者lnmp环境都是可以的,如果是新系统推荐使用lamp或者lnmp一键安装包, 或者可以向下面这种方式: PHP安装 源码安装 rpm -ivh php55w-comm ...
- GitHub上传项目之初体验
git工具是很早之前安装的,之前还没有github账号,现在注册了一个,想学一下托管自己的项目和代码. 登录github账号之后,点击绿色的"New repository",输入名 ...