Wang's blog Wang's blog
首页
  • 前端文章

    • HTML教程
    • CSS
    • JavaScript
  • 前端框架

    • Vue
    • React
    • VuePress
    • Electron
  • 后端技术

    • Npm
    • Node
    • TypeScript
  • 编程规范

    • 规范
  • 我的笔记
  • Git
  • GitHub
  • VSCode
  • Mac工具
  • 数据库
  • Google
  • 服务器
  • Python爬虫
  • 前端教程
更多
收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Wang Mings

跟随大神,成为大神!
首页
  • 前端文章

    • HTML教程
    • CSS
    • JavaScript
  • 前端框架

    • Vue
    • React
    • VuePress
    • Electron
  • 后端技术

    • Npm
    • Node
    • TypeScript
  • 编程规范

    • 规范
  • 我的笔记
  • Git
  • GitHub
  • VSCode
  • Mac工具
  • 数据库
  • Google
  • 服务器
  • Python爬虫
  • 前端教程
更多
收藏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Python爬虫

    • 爬虫的基础知识

    • 请求的发送方法

    • 数据提取方法

    • 高性能爬虫

    • selenium

    • 反爬以及解决方案

    • MONGODB数据库

    • scrapy框架

    • scrapy_redis

    • 爬虫的部署

    • 爬虫框架开发分析

      • 了解框架
      • 框架设计思路分析
        • 框架设计思路分析
          • 目标
          • 1.学习Scrapy,提取它的设计思想\(idea\)
          • 1.1 爬虫的流程
          • 1.2 分析scrapy爬虫流程
          • 2.scrapy爬虫流程分析结果
          • 小结
      • 雏形代码结构
    • 框架雏形实现

    • 框架功能完善

    • 框架功能升级

    • 项目实战

    • pywin32介绍

  • 前端教程

  • 教程
  • Python爬虫
  • 爬虫框架开发分析
wangmings
2022-07-19
目录

框架设计思路分析

# 框架设计思路分析

# 目标
  1. 回顾并掌握scrapy的模块的作用
  2. 回顾并掌握scrapy的数据的传递过程
  3. 能够说出自己要实现的框架包含的模块和模块的作用

# 1.学习Scrapy,提取它的设计思想(idea)

# 1.1 爬虫的流程

爬虫框架解决的问题是爬虫问题,先来看看爬虫的基本流程:

  1. 构建请求信息(url、method、headers、params、data)
  2. 发起HTTP/HTTPS请求,获取HTTP/HTTPS响应
  3. 解析响应,分析响应数据的数据结构或者页面结构
    • 提取数据
    • 提取请求的地址
  4. 对数据进行存储/对新的请求地址重复前面的步骤

无论什么爬虫框架,其核心都离不开上面几个步骤

# 1.2 分析scrapy爬虫流程

分析目标:

a. 分析各个组件的功能和作用
b. 分析各个组件之间的协作关系
c. 对组件进行大致的分类(核心和次要) 
1
2
3

Scrapy流程图

# 2.scrapy爬虫流程分析结果

Scrapy流程分析图 Scrapy流程分析图.png

  1. 三个内置对象:
 请求对象(Request)
 响应对象(Response)
 数据对象(Item) 
1
2
3
  1. 五个核心组件:
 爬虫组件
     构建请求信息(初始的),也就是生成请求对象(Request)
     解析响应对象,返回数据对象(Item)或者新的请求对象(Request)
 调度器组件
     缓存请求对象(Request),并为下载器提供请求对象,实现请求的调度
     对请求对象进行去重判断
 下载器组件
     根据请求对象(Request),发起HTTP、HTTPS网络请求,拿到HTTP、HTTPS响应,构建响应对象(Response)并返回
 管道组件
     负责处理数据对象(Item)
 引擎组件
     负责驱动各大组件,通过调用各自对外提供的API接口,实现它们之间的交互和协作
     提供整个框架的启动入口 
1
2
3
4
5
6
7
8
9
10
11
12
13
  1. 两个中间件:
 爬虫中间件
     对请求对象和数据对象进行预处理

 下载器中间件
     对请求对象和响应对象进行预处理 
1
2
3
4
5

那么对应的,我们也可以在自己的框架是实现这样几个模块和对象


# 小结

  1. 掌握scrapy的模块的作用
  2. 掌握scrapy的数据的传递过程
编辑 (opens new window)
了解框架
雏形代码结构

← 了解框架 雏形代码结构→

最近更新
01
theme-vdoing-blog博客静态编译问题
09-16
02
搜索引擎
07-19
03
友情链接
07-19
更多文章>
Theme by Vdoing | Copyright © 2019-2022 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式