1、简介

(1)Scrapy是用纯python实现的,一个为了爬取网站数据、提取结构性数据而编写的应用框架。

(2)框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片。

(3)Scrapy使用了Twisted(其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己取实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。

2、Scrapy架构图

  

  说明:绿色的线是数据流向

  (1)Scrapy Engine(引擎):负责Spider、ItemPipeline、DownLoader、Scheduler中间的通讯、信号、数据传递等。

  (2)Scheduler(调度器):它负责接受Scrapy Engine发送过来的Request请求,并按照一定的方式进行整理排列,入队,当Scrapy Engine需要时,交还给Scrapy Engine。

  (3)Downloader(下载器):负责下载Scrapy Engine发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine,由Scrapy Engine交给Spider处理。

  (4)Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取item字段需要的数据,并将需要跟进的URL提交给Scrapy Engine,再次进入Scheduler。

  (5)Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行后期处理(详细分析、过滤、存储等)。

  (6)Downloader Middlewares(下载中间件):可以当做是一个可以自定义扩展下载功能的组件。

  (7)Spider Middlewares(Spider中间件): 可以理解是一个可以自定扩展和操作Scrapider Engine和Spider中间通信的功能组件(比如进入Spider的Responses,和从Spider出去的Requests)

3、Scrapy的运作流程

  (1)Scrapy Engine询问Spider要处理的网站,即爬取的域名范围,如example.com,这同时也防止爬虫越界

  (2)Spider发送要处理的域名:`example.com`

  (3)Scrapy Engine会再次询问Spider要处理的第一个URL

  (4)Spider发送`xxxxxx.com`给Scrapy Engine

  (5)Scrapy Engine会让Scheduler将requests请求排序入队

  (6)Scheduler处理requests

  (7)Scrapy Engine向Scheduler要处理好的requests请求

  (8)Scheduler发送处理好的requests给Scrapy Engine

  (9)Scrapy Engine要求Downloader按照Downloader Middlewares的设置下载requests请求

  (10)Downloader Middlewares将下载好的requests发送给Scrapy Engine。如果request下载失败,Scrapy Engine会告诉Scheduler,这个request下载失败了,需要记录一下,等会儿再下载。

  (11)Scrapy Engine返回给Spider下载好的requests,是一个responses对象,responses默认是交给Spider的def parse()这个函数处理的。

  (12)当Spider处理完responses后,如果有需要跟进的URL,会告诉Scrapy Engine,同时将处理好的Item数据提交给Scrapy Engine。

  (13)Scrapy Engine会将接收到的Item发送给Item Pipeline处理。同时将需要跟进的URL发送给Scheduler,让其循环处理,直到获取完需要的全部信息。

  (14)Item Pipeline处理获取到的Item。

  注意:只有当Scheduler中不存在任何request了,整个程序才会停止(如果requests中有下载失败的URL,Scrapy也会重新下载)。

4、制作Scrapy Spider的步骤:

  (1)新建项目(scrapy startproject xxx):新建一个新的爬虫项目

  (2)明确目标(编写items.py,其中的字段为要爬取的关键信息):明确想要抓取的目标

  (3)制作爬虫(编辑spiders/xxx_spider.py):制作爬虫,开始爬取网页

  (4)存贮内容(编辑pilelines.py):设计管道,存储爬取的内容。

5、安装Scrapy

  Scrapy框架官方文档:https://docs.scrapy.org/en/latest/

  Scrapy官方中文文档:https://scrapy-chs.readthedocs.io/zh_CN/latest/index.html

  安装方法:https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/install.html  

一、Scrapy简介相关推荐

  1. Crawler之Scrapy:Scrapy简介、安装、使用方法之详细攻略

    Crawler之Scrapy:Scrapy简介.安装.使用方法之详细攻略 目录 scrapy简介 Scrapy进行安装 Scrapy使用方法 scrapy简介 Scrapy是Python开发的一个快速 ...

  2. Python爬虫——Scrapy 简介和安装

    文章目录 Python爬虫--Scrapy 简介和安装 1.Scrapy 简介 2.Scrapy 下载安装 Python爬虫--Scrapy 简介和安装 1.Scrapy 简介 Scrapy 简介 S ...

  3. scrapy简介-scrapy框架1-python

    scrapy官方文档地址:https://docs.scrapy.org/en/latest/ 1.scrapy简介 Scrapy是适用于Python的一个快速.高层次的屏幕抓取和web抓取框架,用于 ...

  4. Python高级爬虫框架Scrapy简介

    2019独角兽企业重金招聘Python工程师标准>>> Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框 ...

  5. scrapy安装_爬虫框架Scrapy简介与安装

    Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...

  6. Scrapy 简介及初探

    转载自公众号:PythonCoder 前言 为什么要学 scrapy 呢?看下图中的招聘要求,就清楚了.很多招聘要求都有 scrapy,主要是因为 scrapy 确实很强.那到底强在哪里呢?请在文中找 ...

  7. 网络爬虫框架Scrapy简介

    作者: 黄进(QQ:7149101) 一. 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本:它是一个自动提取网页的程序,它为搜索引擎从万维 ...

  8. Python网络爬虫框架 Scrapy简介

    Scrapy 网络爬虫框架 Scrapy的安装 cmd 执行: pip install scrapy测试安装: scrapy -h Scrapy介绍 Scrapy不是一个函数功能库,而是一个爬虫框架. ...

  9. python scrapy简介

    scrapy基础 scrapy是用python写的一个库,使用它可以方便的抓取网页. 主页地址http://scrapy.org/ 文档 http://doc.scrapy.org/en/latest ...

最新文章

  1. 【PAT甲级 大数运算】1065 A+B and C (64bit) (20 分) Python 全部AC
  2. 乱查征信,贷款不想要了吗?
  3. networkx 画有权图_利用NetworkX画网络图
  4. 解决 Idea 卡在 Resolving Maven dependencies ...
  5. 两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)
  6. windows下快速创建大文件
  7. ajaxpro定时刷新页面
  8. [解决]WebLogic跨域访问安全问题
  9. Mysql更新计数器_MySQL实现计数器如何在高并发场景下更新并保持数据正确性
  10. android 图标 textview,Android TextView添加图标ImageView
  11. 基于opencv的身份证识别系统
  12. kindle- amazon kindle电子书导出 转换成epub,并显示中文名
  13. 在linux下如何显示隐藏文件
  14. 涂抹mysql 完整_涂抹MYSQL-跟着三思一步一步学MySQL
  15. 文字烫金效果html,ps如何制作烫金效果 PS制作logo烫黄金效果教程
  16. C语言程序设计 设计用函数实现模块化程序设计
  17. 递归实现在级联选择器中选择部门下的人员
  18. 一步步教你轻松学决策树算法
  19. .Net报表工具ActiveReports在线设计器教程 - 如何调用自定义字体
  20. 雨课堂知识点总结(十二)

热门文章

  1. 企业竞争分析的几种方法:SWOT、波特五力、PEST
  2. 通电导体在磁场中运动大型实验电磁铁设备
  3. vscode关闭C++红色波浪线
  4. MyBatisPlus实操Demo
  5. 最详细的ensp安装及使用
  6. 运营日记:App推广牢记的点
  7. Volocopter将在新加坡推出空中的士服务;铂金资本72亿美元收购海航旗下英迈 | 美通企业日报...
  8. c语言理发店管理系统,理发店如何通过美容美发管理系统处理好顾客预约业务?...
  9. “云影像”加乘“远程医疗平台”,博为软件为“精准医疗”再添力
  10. 使用java + selenium + OpenCV破解网易易盾滑动验证码