scrapy 的安装与简单介绍

简介: scrapy 是一个纯python实现的爬虫框架,结构清晰,模块之前的耦合度低,可扩展性强,可以灵活的完成各种需求,我们只需要定制开发几个模块就可以轻松的实现一个爬虫了。

一 安装scrapy

1 找到anaconda的命令行,输入conda intall scrapy 点击确认
这里写图片描述
2 在安装时,会出现一个y/n选项,输入y点击确认。
下来检测是否安装成功,在命令行输入scrapy, 点击确认,看到如下图所示,表示成功
这里写图片描述

二 创建第一个项目

1 创建第一个项目,这里简单的演示在E盘创建一个名为baidu 的文件,因为它是通过命令行创建文件的,首先在命令行进入E盘,输入scrapy startproject baidu, 点击确认,结果如图
这里写图片描述
2 打开文件,可以看到有如下文件:
这里写图片描述
3 进入到baidu 这个文件夹,会看到几个文件:
这里写图片描述
至此,已经简单的创建了一个scrapy 文件

3 简单的介绍Scrapy

这里写图片描述
大致框架如上图所示,其中:

  1. 引擎(scrapy Engine)
    用来处理整个系统的数据流,触发事务,它是整个框架的核心
  2. 调度器(Scheduler)
    用来接收引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回,可以想象成一个URL的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址
  3. 下载器(Downloader)
    用于下载网页的内容,并将下载的内容返回给蜘蛛(Scrapy 下载器是建立在twisted这个高效的异步模型上的)
  4. 爬虫(Spiders)
    是主要干活的,从特定的网页中提取自己需要的信息,即所谓的实体(Item),用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
  5. 项目管道(Item PipeLine)
    负责处理爬虫从网页中抽取的实体,主要功能是持久化实体,验证实体的有效性,清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据

这里还有三个中间件需要注意一下:

  1. 下载器中间件(Downloader Middlewares)
    位于Scrapy引擎和下载器之间的框架,主要是处理Scrapy引擎与下载器之间的请求与响应
  2. 爬虫中间件(Spider Middlewares)
    介于Scrapy引擎和爬虫之间的框架,主要工作是处理蜘蛛的响应输入和请求输出
  3. 调度中间件(Scheduler Middlewares)
    介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应

一个完整的流程:

Scrapy 中的数据流由引擎控制,数据流的过程如下:
(1)Engine 首先打开一个网站,找到处理该网站的Spider, 并向该Spider请求第一个要爬取的URL
(2)Engine 从Spider 中获取得到第一个要爬取得URL,并通过Scheduler以Request 的形式调度。
(3)Engine 向Scheduler 请求下一个要爬取的URL
(4)Scheduler 返回下一个要爬取得URL给Engine,Engine将URL通过 Dowmloader Middlewares 转发给Downloader 下载
(5)一旦页面下载完毕,Downloader 生成该页面的Response, 并将其通过Downloader Middlewares 发送给Downloader 下载
(6)Engine 从下载器中接受到Response, 并通过Spider Middlewares 发送给Spider处理
(7)Spider 处理Response,并返回爬取到的Item 及新的Request 给Engine
(8)Engine 将Spider 返回的Item 给 Item Pipeline, 将新的Request 给Scheduler
(9) 重复第(2)步到第(8)步,直到Scheduler中没有更多的Request, Engine 关闭该网站,爬取结束

以上便是一个完整的流程,通过多个组件的相互协作、不同组件完成工作的不同、组件对异步处理的支持,Scrapy最大的利用里网络带宽,大大提高了数据爬取和处理的效率。

对生成的文件的介绍

在成功创建一个Scrpy 项目后,会产生如下图所示的文件
这里写图片描述

  • items.py: 它定义Item数据结构,所有的的Item的定义都可以放这里
  • midddlewares.py 它定义Spider Middllewares 和 Downloader Middlewares 的实现
  • pipelines.py 它定义Item Pipeline 的实现,所有的Item Pipeline 的实现都可以放这里
  • settings.py 它定义项目的全局配置
  • scrapy.cfg 它是Scrapy 项目的配置文件,其内定义了项目的配置文件路径、部署相关信息等内容
  • spiders 其内包含一个个Spider 的实现,每个Spider 都有一个文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值