scarpy据说是目前最强大的爬虫框架,没有之一。就是这么自信。

官网都是这么说的。

An open source and collaborative framework for extracting the data you need from websites.

In a fast, simple, yet extensible way.

 一个开源的,协作的框架从网络收集你需要的数据,是简单,快速以及可扩展的。

那么学习之前,首先要学习一个原理。

Scarpy有几个模块

1.engine 引擎,框架已经实现,不需要我们写,它是scrapy能够进行的重要部件。好比车的发动机。

2.spiders  爬虫文件

3.schedule 调度器    对于发起的请求入队列

4.downloader下载器  从互联网中下载网页源代码

5,Itempipline 管道文件 ,用于可持续化存储数据,可以存储在MySQL,MongoDB,Redis,也可以保存于文件。

通过这个图可以看出scrapy工作的原理。

1,spiders 将发送的请求request(url)发送给 scrapy engine 引擎。然后引擎发送给调度器(scheduler),调度器对发送来的请求进行排序,入队列

2. scheduler调度器将请求request(url) ,发给scrapy engine引擎,然后引擎(Engine)将请求request 通过Downloader Middleware(下载器中间建)发送给Downloader下载器。

3,下载器Downloader 向互联网发送请求(request),下载网页源代码。得到response 响应,响应response通过 SpiderMiddleWares,发送给Spiders爬虫文件。

4.爬虫spiders对数据进行提取,然后发送数据交给Itempipeline 管道,管道将数据进行持久化操作或者保存。

spiders对下载器下载的网页源码进行数据机器,scrapy提供了css选择器。可以方便提取相关的数据。

通过这些步骤可以看出来,scrapy engine是占据很重要的位置。它负责联系各种组件之间的信号signals传递。

通过以下图,可以看出来,Scrapy需要我们书写的靳靳是spider,ItemPipeline,提取数据和持久化数据操作。其余的都已经替我们实现了。

最新文章

  1. 如何搭建git服务器
  2. Jquery实现select左右栏的添加移除
  3. C++封装、继承、多态
  4. javascript判断浏览器的版本
  5. Android实例] android获取web服务器端session并验证登陆
  6. android Studio gradle so的加载
  7. Windows 7 Shortcuts (完整兼具分类有序,想我所想,赞!)
  8. jquery EsayUi 里一个小弹框
  9. 选择29部分有用jQuery应用程序插件(免费点数下载)
  10. 日志快速筛选 之 linux命令grep|uniq|wc|awk
  11. HTML DOM应用案例1
  12. 使用Google Cloud Platform构建机器学习项目-宠物识别
  13. EXCEL技能之数据去重
  14. 利用SVD-推荐未尝过的菜肴
  15. 全网最详细的实用的搜索工具Listary和Everything对比的区别【堪称比Everything要好】(图文详解)
  16. node版本控制之nvm
  17. Retrofit/Okhttp API接口加固技术实践(上)
  18. hammer.js方法总结(只做了一个简单的demo)
  19. github 与gitlab之间的工程创建
  20. Arduino和C51之串口通信

热门文章

  1. html中map标签和area标签的应用(总结)
  2. "New page after" by code
  3. zabbix真的很简单 (安装篇)
  4. k8s-启动、退出动作
  5. 基于spark邮件自动分类
  6. 关于曲线 规划 算法 线性 S曲线 贝塞尔曲线
  7. void*和void类型
  8. 分布式服务防雪崩熔断器,Hystrix理论+实战。
  9. how to prevent lowmemorykiller from killing processes
  10. 搭建 webpack、react 开发环境(一)