《数据采集技术》课件-项目六 任务1 创建爬取框架_第1页
《数据采集技术》课件-项目六 任务1 创建爬取框架_第2页
《数据采集技术》课件-项目六 任务1 创建爬取框架_第3页
《数据采集技术》课件-项目六 任务1 创建爬取框架_第4页
《数据采集技术》课件-项目六 任务1 创建爬取框架_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用Scrapy框架实现某网站书籍信息爬取目录01任务1创建爬取框架02任务2:Scrapy对接Selenium03任务3:使用Scrapy框架实现某网站书籍信息爬取任务1:创建爬取框架

任务描述

Scrapy是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各种需求,不必关心爬虫的流程,异常处理、任务调度等都会集成在框架中,我们只需要定制开发几个模块就可以轻松实现一个爬虫。本节任务就是要创建一个Scrapy项目。任务目标02010403了解Scrapy框架基本原理认识Scrapy框架核心组件会安装Scrapy框架能正确创建Scrapy框架项目任务一

创建爬取框架1.1Scrapy框架简介

Scrapy是一个基于Python开发的爬虫框架,是当前Python爬虫生态中最流行的爬虫框架,提供了非常多爬虫相关的基础组件,架构清晰,可扩展性极强。几乎是Python爬虫学习和工作过程中必须掌握的框架,需要好好钻研和掌握!!!1.2Scrapy框架基本思想前期的爬虫实现逻辑:爬取逻辑、异常处理、数据解析、数据存储等,这些步骤都是通用或是重复的,因此,我们完全可以把这些步骤的逻辑抽离出来,把其中通用的功能做成一个个基础的组件,抽离出基础组件以后,每次写爬虫只需要在这些组件基础上加上特定的逻辑就可以实现爬取的流程,而不用将爬虫每个细小的流程都写一遍,即把每个逻辑封装成一个通用的方法或类来直接调用。任务一

创建爬取框架1.3Scrapy框架架构

任务一

创建爬取框架1.4Scrapy核心组件

Engine:引擎,用来处理整个系统的数据流和事件,是整个框架的核心,可以理解为整个框架的中央处理器,负责数据的流转和逻辑的处理。

Item:一个类(里面定义了爬取结果的数据字段,可以理解为它用来规定爬取数据的存储格式),爬取的数据会被赋值成Item对象。

Scheduler:调度器,用来接受Engine发过来的Request并加入队列,同时也可以将Request发回给Engine供Downloader执行,主要维护Request的调度逻辑(先进先出、后进先出、优先级出入等)。

Downloader:下载器,完成“向服务器发送请求,然后拿到响应”的过程,等到的响应会再发送给Engine处理。任务一

创建爬取框架

Spiders:蜘蛛,可以对应多个spider,每个spider内定义了站点的爬取逻辑和页面的解析规则,它主要负责解析响应并生成Item和新的请求然后发给Engine进行处理。

ItemPipelines:项目管道,可以对应多个ItemPipeline,主要负责处理由Spider从网页中抽取的Item,做一些数据清洗、验证和存储等工作(比如将Item的某些字段进行规整,将Item存储到数据库等操作)。

DownloaderMiddlewares:下载器中间件,包含多个DownloaderMiddleware,是位于引擎和下载器之间的Hook框架,负责实现Engine与Downloader之间的请求及响应的处理过程。

SpiderMiddlewares:蜘蛛中间件,位于Engine和Spider之间的Hook框架,负责实现Spiders和Engine之间的Item、请求和响应的处理过程。任务一

创建爬取框架1.5Scrapy数据流Scrapy数据流主要包括三大部分:Item、Request、Response,它们是怎么被Engine控制和流转的呢?

1.启动爬虫项目时,Engine根据要爬取的目标站点找到处理该站点的Spider,Spider会生成最初需要爬取的页面对应的一个或多个Request,然后发给Engine

2.Engine从Spider中获取这些Request,然后把它们交给Scheduler等待被调度

3.Engine向Scheduler索取下一个要处理的Request,这时候Scheduler根据其调度逻辑选择合适的Request发送给Engine4.Engine将Scheduler发来的Request转发给Downloader进行下载执行,将Request发送给Downloader的过程会经由许多定义好的DownloaderMiddlewares的处理任务一

创建爬取框架

5.Downloader将Request发送给目标服务器,得到对应的Response,然后将其返回给Engine,将Response返回Engine的过程,同样会经由许多定义好的SpiderMiddlewares的处理

6.Engine从Downloader处接收到的Response里包含了爬取的目标站点的内容,Engine会将此Response发送给对应的Spider进行处理,将Response发送给Spider的过程会经由定义好的SpiderMiddlewares的处理

7.Spider处理Response,解析Response的内容,这时候Spider会产生一个或多个爬取结果Item或者后续要爬取的目标页面对应的一个或多个Request,然后再将这些Item或Request发送给Engine进行处理,将Item或Request发送给Engine的过程会经由定义好的SpiderMiddlewares的处理

8.Engine将Spider发回的一个或多个Item转发给定义好的ItemPipelines进行数据处理或存储的一系列操作,将Spider发回的一个或多个Request转发给Scheduler等待下一次被调度

重复2-8步,直到Scheduler中没有更多的Request,这时候Engine会关闭Spider,整个爬取过程结束任务一

创建爬取框架1.6创建Scrapy框架项目

1.安装

pip3installscrapy

Scrapy框架往往需要很多依赖库,如果依赖库没有安装好,Scrapy的安装过程是比较容易失败的如何验证是否安装成功?任务一

创建爬取框架2.命令行创建一个爬虫项目

(切换到要创建的目录下)

scrapystartprojectbooks

验证:

打开项目创建目录,观察是否产生了books文件夹任务一

创建爬取框架3.命令行创建一个Spider(切换到要创建的目录下)

scrapygenspiderbook

任务一

创建爬取框架4.项目结构

scrapy项目的配置文件,其中定义了项目的配置文件路径、部署信息等定义了Item数据结构,所有Item的定义都可以放这里定义了ItemPipelines的实现,所有ItemPipelines

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论