Scrapy框架学习(一)Scrapy框架介绍

Scrapy框架的架构图如上。
Scrapy中的数据流由引擎控制,数据流的过程如下:
1.Engine打开一个网站,找到处理该网站的Spider,并向该Spider请求第一个要爬取得URL。
2.Engine从Spider中获取到第一个要爬的URL,并通过Scheduler以Request的形式调度。
3.Engine向Scheduler请求下一个要爬取的URL。
4.Scheduler返回下一个要爬取的URl给Engine,Engine将URL通过Downloader Middlewares转发给Downloader下载。
5.一旦页面下载完毕,Downloader生成该页面的Response,并将其通过Downloader Middlewares发送给Engine。
6.Engine从下载器中接收到Response,并将其通过Spider Middlewares 发送给Sprider处理。
7.Spider处理Response,并返回爬取到的Item和新的Requests给Engine。
8.Engine将Spider返回的Item给Item Pipeline,将新的Request给Scheduler。
9.重复2-8步,直到Scheduler没有更多的Request,Engine关闭网站,爬取结束。
项目文件结构如下:
scrapy.cfg ------------------------配置文件,定义了项目的配置文件路径,部署相关信息等内容
project/
__init__.py
items.py ------------------------定义Item数据结构,所有Item的定义都放在这里
pipelines.py ------------------------定义Item Pipeline,所有的Item Pipeline的实现放在这里
settings.py ------------------------定义项目的全局配置
middlewares.py ------------------------定义Sprider Middlewares 与Downloader Middlewares
spiders/
__init__.py
spider1.py ------------------------每个Sprider文件包含一个Spider的实现,可以有多个Spider
spider2.py
....
Scrapy框架学习(一)Scrapy框架介绍的更多相关文章
- 框架学习:ibatis框架的结构和分析
由于最近一段时间比较忙碌,<框架学习>系列的文章一直在搁浅着,最近开始继续这个系列的文章更新. 在上篇文章中我们说到了hibernate框架,它是一种基于JDBC的主流持久化框架,是一个优 ...
- go培训课程都学什么?go语言框架学习:xorm框架知识介绍
xorm框架介绍 xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便. 通过xorm框架,开发者可以方便的使用各种封装好的方法来代替原生的sql语句.这样就降低了我们开发者使 ...
- 【框架学习】Nancy 框架
Nancy 框架 http://liulixiang1988.github.io/nancy-webkuang-jia.html .是一个轻量级用于构建http相应的web框架: .与mvc类似,有自 ...
- Mybatis框架学习总结-Mybatis框架搭建和使用
Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使 ...
- Quartz框架学习(1)—核心层次结构
Quartz框架学习 Quartz(任务调度)框架的核心组件: job:任务.即任务调度行为中所要调度的对象. trigger:触发器.是什么促使了一个任务的调度?当然是时间.这也算事件驱动类型程序. ...
- 框架学习系列 mybatis mapper映射文件之输出映射
1: mapper映射文件输出映射(输入类型) 2:resultType的使用 3:resultMap的使用 3:总结&下节预告 本文是<凯哥陪你学系列-框架学习之mybatis框架学习 ...
- python爬虫随笔-scrapy框架(1)——scrapy框架的安装和结构介绍
scrapy框架简介 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试 ...
- scrapy框架学习之路
一.基础学习 - scrapy框架 介绍:大而全的爬虫组件. 安装: - Win: 下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted pip3 ...
- 自己的Scrapy框架学习之路
开始自己的Scrapy 框架学习之路. 一.Scrapy安装介绍 参考网上资料,先进行安装 使用pip来安装Scrapy 在开始菜单打开cmd命令行窗口执行如下命令即可 pip install Scr ...
- scrapy爬虫框架学习笔记(一)
scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...
随机推荐
- JDK安装目录分析-两个jre和三个lib
安装JDK后,Java目录下有jdk和jre两个目录,但jdk下还有一个jre目录,而且这个jre比前面那个jre在bin目录下少了个server文件夹(Server端的Java虚拟机)!前一个jre ...
- ubuntu里面如何以root身份使用图形界面管理文件?
nautilus 是gnome的文件管理器,但是如果不是root账号下,权限受限,我们可以通过以下方式以root权限使用! 一,快捷键“Ctrl+Alt+t”,调出shell. 二,在shell中输入 ...
- Hierarchical Z-Buffer Occlusion Culling
While I was at GDC I had the pleasure of attending the Rendering with Conviction talk by Stephen Hil ...
- 使用ActiveMQ实现简易聊天功能
一 什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用.消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰. ...
- “全栈2019”Java第十一章:标识符
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- django 配置xadmin
django xadmin本地安装 百度云 下载,激活码:bxhv,下载后不需要解压,直接本地 pip install xxx.zip django 版本需要 1.1.11, 1,添加app INST ...
- react的一些思考
在做好第一个需求之后,我接到了一个react写的产品,这让我异常的兴奋,终于能写react了 开始做的时候整体框架已经搭建好了,这让我有点小失落,我还以为我要开始搭框架了呢,没事,搭的也挺好的. 有了 ...
- 游戏1:HTML5制作网页游戏围住神经猫--createjs
游戏简介:点击小圆圈,是蓝色的小圆圈不跑出圆圈外,跑出则结束游戏 准备工作: 下载easejs :下载地址:http://www.createjs.cc/easeljs 中文网站 效果: in ...
- springMvc 中返回字符串 乱码解决
/** * produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8" 乱码解决 * @param callback * ...
- Shiro在SpringBoot中的使用
Demo代码请参考:https://github.com/roostinghawk/ShiroDemo 以下为主要代码(经过验证,测试) 1. pom.xml:引用shiro <dependen ...