Scrapy 是 Python 领域专业的爬虫开发框架,已经完成爬虫程序的大部分通用工具,因此 Scrapy 开发爬虫项目既简单又方便。

简介

异步处理框架,可配置和可扩展程度非常高,Python中使用最广泛的爬虫框架

安装

Ubuntu

传统方式

  1. 安装依赖库

    sudo apt-get install python-dev build-essential libssl-dev libffi-dev liblxml2 libxml2-dev libxslt1-dev zlib1g-dev
    
  2. 升级pyasn1模块(可选)

    sudo pip3 install pyasn1==0.4.4
    
  3. 安装Scrapy

    sudo pip3 install Scrapy
    
  4. 验证安装完成

    scrapy version
    

conda方式

见下面的Windows安装方式

Windows Or Mac

conda install Scrapy

框架的组成

组件 英文名 功能
引擎 Engine 整个框架的核心
调度器 Scheduler 接收从引擎发过来的URL,入队列
下载器 Downloader 下载网页源码,返回爬虫程序
项目管道 Item Pipeline 数据处理
下载器中间件 Downloader Middlewares 处理引擎与下载器直接按的请求和响应
蜘蛛中间件 Spider Middlewares 处理爬虫程序和输入的响应和输出结果以及新的请求
Item 定义爬取结果的数据结构,爬取的数据会被数值为Item对象

爬取流程

sequenceDiagram
    participant 爬虫程序
    participant 引擎
    participant 调度器
    participant 下载器
    participant 管道文件
    爬虫程序->>引擎: 发送Urls
    引擎->>调度器: Urls入队列
    loop 多线程任务
        调度器-->>引擎: Url
        引擎->>下载器: Url(经过下载器中间件)
        下载器->>下载器: 网络请求
        下载器-->>引擎: reponse
        引擎-->>爬虫程序: response(经过蜘蛛中间件)
        爬虫程序->>爬虫程序: xpath解析
        爬虫程序->>引擎: 解析后的数据+(新的Url)
        引擎->>管道文件: 解析后的数据
        管道文件->>管道文件: 持久化
        引擎->>调度器: 新的Urls进队列
         end

制作Scrapy爬虫项目的步骤

  1. 新建项目

    scrapy startproject Lianjia