scrapy-redis 和 scrapy 有什么区别

scrapy-redis 和 scrapy 有什么区别

scrapy-redis 和 scrapy 有什么区别


scrapy
是一个通用的爬虫框架,其功能比较完善,可以帮你迅速的写一个简单爬虫,并且跑起来。scrapy-redis是为了更方便地实现scrapy分布式爬取,而提供了一些以redis为基础的组件(注意,scrapy-redis只是一些组件,而不是一个完整的框架)。
可以这么认为,scrapy是一工厂,能够出产你要的spider。而scrapy-redis是其他厂商为了帮助scrapy工厂更好的实现某些功能而制造了一些设备,用于替换scrapy工厂的原设备。

scrapy怎么在服务器上跑起来


scrapy在服务器上跑起来的方法如下:启动scrapyd;配置项目下的scrapy.cfg;deploy设置;就可以了。scrapyd 是由scrapy 官方提供的爬虫管理工具,它可以管理多个项目,每个项目可以上传多个版本,但默认使用最新版。

如何在scrapy框架下,用python实现爬虫自动跳转页面来抓去网页内容


Scrapy是一个用Python写的Crawler Framework,简单轻巧,并且非常方便。Scrapy使用Twisted这个异步网络库来处理网络通信,架构清晰,并且包含了各种中间件接口,可以灵活地完成各种需求。Scrapy整体架构如下图所示:
根据架构图介绍一下Scrapy中的各大组件及其功能:
Scrapy引擎(Engine):负责控制数据流在系统的所有组建中流动,并在相应动作发生触发事件。
调度器(Scheduler):从引擎接收Request并将它们入队,以便之后引擎请求request时提供给引擎。
下载器(Downloader):负责获取页面数据并提供给引擎,而后提供给Spider。
Spider:Scrapy用户编写用于分析Response并提取Item(即获取到的Item)或额外跟进的URL的类。每个Spider负责处理一个特定(或一些网站)。
Item Pipeline:负责处理被Spider提取出来的Item。典型的处理有清理验证及持久化(例如存储到数据库中,这部分后面会介绍存储到MySQL中,其他的数据库类似)。
下载器中间件(Downloader middlewares):是在引擎即下载器之间的特定钩子(special hook),处理Downloader传递给引擎的Response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能(后面会介绍配置一些中间并激活,用以应对反爬虫)。
Spider中间件(Spider middlewares):是在引擎及Spider之间的特定钩子(special hook),处理Spider的输入(response)和输出(Items即Requests)。其提供了一个简便的机制,通过插入自定义的代码来扩展Scrapy功能。

scrapy和python有什么关系


Scrapy是Python开发的一个快速、高层次的web数据抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘和监测。

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等。

Scrapy算得上是Python世界中最常用的爬虫框架了,同时它也是我掌握的几种流行语言中最好的爬虫框架,没有之一!我认为它也是最难学习的框架,同样没有之一。很多初学Scarpy的经常向我抱怨完全不清楚Scrapy该怎样入手,即使看的是中文的文档,也感到很难理解。我当初接触Scrapy时也有这样的感觉。之所以感到Scrapy难学,究其原因,是其官方文档实在太过凌乱,又缺少实用的代码例子,让人看得云里雾里,不知其所已然。虽然其文档不良,但却没有遮挡住它的光辉,它依然是Python世界中目前最好用的爬虫框架。其架构的思路、蜘蛛执行的效能,还有可扩展的能力都非常出众,再配以Python语言的简洁轻巧,使得爬虫的开发事半功倍。

相关推荐:《Python基础教程》

Scrapy的优点:

(1)提供了内置的HTTP缓存,以加速本地开发。

(2)提供了自动节演调节机制,而且具有遵守robots.txt的设置的能力。

(3)可以定义爬行深度的限制,以避免爬虫进入死循环链接。

(4)会自动保留会话。

(5)执行自动HTTP基本认证。不需要明确保存状态。

(6)可以自动填写登录表单。

(7)Scrapy有一个内置的中间件,可以自动设置请求中的引用(referrer)头。

(8)支持通过3xx响应重定向,也可以通过HTML元刷新。

(9)避免被网站使用的meta重定向困住,以检测没有JS支持的页面。

(10)默认使用CSS选择器或XPath编写解析器。

(11)可以通过Splash或任何其他技术(如Selenium)呈现JavaScript页面。

(12)拥有强大的社区支持和丰富的插件和扩展来扩展其功能。

(13)提供了通用的蜘蛛来抓取常见的格式:站点地图、CSV和XML。

(14)内置支持以多种格式(JSON、CSV、XML、JSON-lines)导出收集的数据并将其存在多个后端(FTP、S3、本地文件系统)中。

Scrapy框架原理

Scrapy Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。

Scheduler(调度器):负责接收引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。

Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,

Spider(爬虫):负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),

Item Pipeline(管道):负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.

Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。

Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

Scrapy各个组件介绍

·Scrapy Engine:

引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。它也是程序的入口,可以通过scrapy指令方式在命令行启动,或普通编程方式实例化后调用start方法启动。

·调度器(Scheduler)

调度器从引擎接收爬取请求(Request)并将它们入队,以便之后引擎请求它们时提供给引擎。一般来说,我们并不需要直接对调度器进行编程,它是由Scrapy主进程进行自动控制的。

·下载器(Down-loader)

下载器负责获取页面数据并提供给引擎,而后将网站的响应结果对象提供给蜘蛛(Spider)。具体点说,下载器负责处理产生最终发出的请求对象 Request 并将返回的响应生成 Response对象传递给蜘蛛。

·蜘蛛——Spiders

Spider是用户编写用于分析响应(Response)结果并从中提取Item(即获取的Item)或额外跟进的URL的类。每个Spider负责处理一个特定(或一些)网站。

·数据管道——Item Pipeline

Item Pipeline 负责处理被 Spider 提取出来的 Item。 典型的处理有清理、验证及持久化(例如,存取到数据库中)。

·下载器中间件(Downloader middle-wares)

下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的Response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy的功能。

·Spider中间件(Spider middle-wares)

Spider 中间件是在引擎及 Spider 之间的特定钩子(specific hook),处理 Spider 的输入(Response)和输出(Items及Requests)。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy的功能。

从Scrapy的系统架构可见,它将整个爬网过程进行了非常具体的细分,并接管了绝大多数复杂的工作,例如,产生请求和响应对象、控制爬虫的并发等。


请简述scrapy创建项目的流程以及相应语句,对相关参数进行解释






摘要
一.创建项目





1.先cd到项目放置的文件夹 # pycharm 或者cmd都可以





2.执行命令 scrapy startproject Novels2 # Novels2 表示项目名字





3.cd Novels2 # 进入到项目文件夹





4.scrapy genspider example example.com # example 就是爬虫的名字 example.com需要爬取的网站的域名





二.配置settings.py





1.第20行 ROBOTSTXT_OBEY = False # 默认true,需要改成 false 不遵守机器协议





2.第40-44行,取消注释,增加一个 User-Agent,请求头, DEFAULT_REQUEST_HEADERS





3.第66-68行,去掉注释,ITEM_PIPELINES





4.(可选)LOG_LEVEL = ‘ERROR’ 日志等级为 ERROR 即可 运行会产生大量日志,可以选择关闭运行日志





三.运行爬虫 scrapy crawl novels80 # novels80 爬虫名字





也可以加一个 start.py文件 # start.py 自己定义叫什么名字都可以





内容如下





from scrapy import cmdline





import logging





useragent 是自己爬虫的名字





cmdline.execute([“scrapy”,“crawl”,‘bwm3_gt’])





四.开始写爬虫 在spiders文件夹里面





最后 yield Bwm3Item(catagory=catagory,img_urls=img_urls) 时, 等于号 左边的变量名 === items.py中自己定义的字段 === piplines.py中





要取出来的字段 ;等号右边 是你在爬虫中获取到的数据的 变量名。





1





2





1





2





五.再到 items.py中设置模型





六.piplines.py 中 保存







咨询记录 · 回答于2021-06-23









请简述scrapy创建项目的流程以及相应语句,对相关参数进行解释









一.创建项目









1.先cd到项目放置的文件夹 # pycharm 或者cmd都可以









2.执行命令 scrapy startproject Novels2 # Novels2 表示项目名字









3.cd Novels2 # 进入到项目文件夹









4.scrapy genspider example example.com # example 就是爬虫的名字 example.com需要爬取的网站的域名









二.配置settings.py









1.第20行 ROBOTSTXT_OBEY = False # 默认true,需要改成 false 不遵守机器协议









2.第40-44行,取消注释,增加一个 User-Agent,请求头, DEFAULT_REQUEST_HEADERS









3.第66-68行,去掉注释,ITEM_PIPELINES









4.(可选)LOG_LEVEL = ‘ERROR’ 日志等级为 ERROR 即可 运行会产生大量日志,可以选择关闭运行日志









三.运行爬虫 scrapy crawl novels80 # novels80 爬虫名字









也可以加一个 start.py文件 # start.py 自己定义叫什么名字都可以









内容如下









from scrapy import cmdline









import logging









useragent 是自己爬虫的名字









cmdline.execute([“scrapy”,“crawl”,‘bwm3_gt’])









四.开始写爬虫 在spiders文件夹里面









最后 yield Bwm3Item(catagory=catagory,img_urls=img_urls) 时, 等于号 左边的变量名 === items.py中自己定义的字段 === piplines.py中









要取出来的字段 ;等号右边 是你在爬虫中获取到的数据的 变量名。









1









2









1









2









五.再到 items.py中设置模型









六.piplines.py 中 保存









请简要阐述scrapy框架的几大组成部分,并解释每部分的功能


















lqy2333









还有这个 姐姐






python中的scrapy是什么意思a


Scrapy英文意思是刮擦
被用来命名爬虫界知名的框架。
使用这个框架可以轻易实现常规网页采集。也支持大型架构。升级后redis更是支持分布式。利用scrapyd更是可以发布服务。
从事爬虫方向必学!

beautifulsoup与scrapy 这两者之间有什么区别


beautiful soup可以离线解释html文件,但是获取html文件是由用户的其他行为的定义的,比如urllib或者request
而scrapy是一个完整的获取程序,只需要把网址贴上去,就会自动去爬。 省去很多用户需要关注的细节。

什么时候scrapy


Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
Scrapy是一个为爬取网站数据、提取结构性数据而设计的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。
尽管Scrapy原本是设计用来屏幕抓取(更精确的说,是网络抓取),但它也可以用来访问API来提取数据。
Scrapy Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
Scheduler(调度器):它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。
Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
Downloader Middlewares(下载中间件):一个可以自定义扩展下载功能的组件。
Spider Middlewares(Spider中间件):一个可以自定扩展和操作引擎和Spider中间通信的功能组件。


创建scrapy项目失败怎么办


1、你需要已正确安装好scrapy;
2、假如你要将项目安装到D:\code\这个目录下,(我是使用pycharm),你在terminal下先转到该目录下:
D:
cd code
3、使用命令创建一个项目:
scrapy startproject 项目名
4、则在D:\code\目录下会成功创建一个你取的项目名的目录。
5、以上是标准的创建过程,如果你有遇到失败,那么请贴出你的失败提示。

scrapy怎么安装急!!


  • 1.安装Python

    安装完了记得配置环境,将python目录和python目录下的Scripts目录添加到系统环境变量的Path里。在cmd中输入python如果出现版本信息说明配置完毕(如下面截图)。python下载网站,www.ddooo.com/softdown/102344.htm。请选择对应的Python版本安装。我装了2.7

    (记得设置环境变量)

  • 2.安装lxml    lxml是一种使用 Python 编写的库,可以迅速、灵活地处理 XML。下载地址 www.ddooo.com/softdown/20939.htm,可用pip下载,

    下载命令:python -m pip install lxml

  • 3.安装setuptools  一般都已经安装了的,可在cmd中用 python -m pip list 查看是否已经安装,如果没安装,用下载命令:python -m pip install setuptools安装,下载地址


推荐阅读