Scrapy 初识(1)

251 阅读2分钟

这是我参与更文挑战的第12天,活动详情查看: 更文挑战

Scrapy是python实现的一个用于爬取网站数据的框架

Scrapy框架原理

截屏2021-06-13 下午7.42.13.png

Scrapy Engine(引擎):引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。。

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

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

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

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

Downloader Middlewares(下载中间件):下载器中间件是在引擎及下载器之间的特定钩子(specific hook),处理Downloader传递给引擎的response。

Spider Middlewares(Spider中间件):Spider中间件是在引擎及Spider之间的特定钩子(specific hook),处理spider的输入(response)和输出(items及requests)。

整个爬取的过程图如下:

截屏2021-06-13 下午7.47.21.png

实验过程

1. 安装Scrapy

pip install Scrapy

检查是否安装成功:

Scrapy

截屏2021-06-13 下午3.13.18.png

显示Scrapy版本信息,即为安装成功。

2. 创建Scrapy项目

==scrapy startproject 项目名==

截屏2021-06-13 下午3.16.25.png

可以从创建信息中看到,新项目被放置在了/Users/tjm/mySpider处,项目目录如下:

mySpider

​ |mySpider(项目的python模块)

​ |spiders

​ |init.py

​ |init.py

​ |items.py(存放需要爬取的字段)

​ |middlewares.py(项目中的中间件文件)

​ |pipelines.py(爬取到的数据在这里设计被保存在哪,或是mysql数据库中,或者保存为.csv文件)

​ |settings.py(项目的设置文件)

​ |scrapy.cfg(项目配置文件)