美文网首页
scrapy框架是真爱

scrapy框架是真爱

作者: 徐辉英 | 来源:发表于2019-06-15 11:04 被阅读0次

初识scrapy框架

首先我认为scrapy框架和编写的普通爬虫文件没有什么区别 唯一不同的是它可以把你得各种爬虫需求进行封装 而一些中间件也会帮助你实现你的爬虫需求 一般来说只需要编写items.py spiders settings pipelines这四个模块的内容 这样简单明了 高效便捷 不得不提的是scrapy框架实现去重简直太优秀 Scrapy 使用了 Twisted['twɪstɪd] 异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求 必须夸 加鸡腿

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(下载中间件):可以自定义扩展下载功能的组件(代理、cokies等)。

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

啊啊啊啊啊啊   脑壳疼 这里有简单的图

入手使用scrapy框架

1.创建项目:

先切换到自定义的目录下 

执行命令:

scrapy startproject (爬虫名字:spiderproject)

2.创建(普通)文件

切换到项目目录下 进入项目主目录 创建爬虫文件

执行命令:

scrapy genspider baiduspider 域名(baidu.com)


创建文件

切换到项目目录下 进入项目主目录 创建爬虫文件

执行命令:

scrapy genspider baiduspider 域名(baidu.com)

3.用pycharm打开项目

如图所示

4.运行爬虫文件

先切换到爬虫文件所在目录

命令行:scrapy crawl (爬虫文件名字)

scrapy框架如何工作

启动爬虫:

Scrapy框架为Spider的 start_urls 属性中的每个url创建了Request 对象,并将 parse 方法作为回调函数(callback)赋值给了requests,而requests对象经过调度器的调度,执行生成response对象并送回给parse() 方法进行解析,所以请求链接的改变是靠回调函数实现的。

yield scrapy.Request(self.url, callback=self.parse)  <必须有>

总结: 

HOW  scrapy框架协调工作

1.spider的yield将request发送给engine

2.engine对request进行排队处理 不做任何操作 在scheduler需要时返回给scheduler

3.scheduler生成request交给engine

4. engine拿到request通过middleware发送给downloader

5.downloader在获取到response后 经过middleware发送给engine

6. engine在获取到response后,返回给spider,spider会对response进行处理 解析出items或者requests

7.将解析出来的items或者requests,items  发送给pipelines,将requests发送给scheduler

8.只有调度器中不存在request时,程序才停止,及时请求失败scrapy也会重新进行请求

官方爸爸:

Scrapy框架官方网址

相关文章

  • scrapy框架是真爱

    初识scrapy框架 首先我认为scrapy框架和编写的普通爬虫文件没有什么区别 唯一不同的是它可以把你得各种爬虫...

  • Scrapy框架步骤

    简单了解一下Scrapy框架于操作步骤 什么是Scrapy框架呢? scrapy是python下的数据爬取集框架,...

  • Python爬虫基础:scrapy 框架结构及scrapy.Sp

    scrapy 框架结构 思考 scrapy 为什么是框架而不是库? scrapy是如何工作的? 项目结构 在开始爬...

  • Python爬虫基础:scrapy框架简介及第一个scrapy爬

    scrapy框架简介 scrapy是一个使用Python语言(基于Twisted框架)编写的开源网络爬虫框架,目前...

  • 06 scrapy框架

    06 scrapy框架 Scrapy是纯Python开发的一个高效,结构化的网页抓取框架; Scrapy是一个为了...

  • Pycharm+Scrapy框架运行爬虫糗事百科(无items数

    scrapy爬虫框架 qsbk.py 爬虫代码 import scrapy'''scrapy框架爬虫流程:发送请求...

  • 2021-07-21

    Scrapy框架的基本使用 scrapy框架简介 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构...

  • Scrapy使用

    Scrapy框架 什么是scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需...

  • Scrapy的使用方法

    Scrapy框架 什么是scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需...

  • 技术选型

    scrapy vs requests+beaufigulsoup scrapy 是框架 (强大)requests+...

网友评论

      本文标题:scrapy框架是真爱

      本文链接:https://www.haomeiwen.com/subject/eegvfctx.html