这是我参与更文挑战的第12天,活动详情查看: 更文挑战
Scrapy是python实现的一个用于爬取网站数据的框架。
Scrapy框架原理
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)。
整个爬取的过程图如下:
实验过程
1. 安装Scrapy
pip install Scrapy
复制代码
检查是否安装成功:
Scrapy
复制代码
显示Scrapy版本信息,即为安装成功。
2. 创建Scrapy项目
==scrapy startproject 项目名==
可以从创建信息中看到,新项目被放置在了/Users/tjm/mySpider处,项目目录如下:
mySpider
|mySpider(项目的python模块)
|spiders
|init.py
|init.py
|items.py(存放需要爬取的字段)
|middlewares.py(项目中的中间件文件)
|pipelines.py(爬取到的数据在这里设计被保存在哪,或是mysql数据库中,或者保存为.csv文件)
|settings.py(项目的设置文件)
|scrapy.cfg(项目配置文件)