scrapy框架介绍
scrapy是由Python语言开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
scrapy框架的传送门:
https://scrapy.org
scrapy框架运行原理
Scrapy Engine(引擎):负者Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据转递等。
Scheduler(调度器) :它负责接受引擊发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
Downloader (下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎) ,由引擎交给Spider来处理。
Spider (爬虫) :它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
Item Pipeline(管道) :它负责处理Spider 中获取到的Item ,并进行进行后期处理(详细分析、过滤、存储等)的地方。
Downloader Middlewares (下载中间件) : 你可以当作是一个可以自定义扩 展下载功能的组件。
Spider Middlewares (Spider中间件) : 你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests )
制作 Scrapy 爬虫 一共需要4步:
新建项目 (scrapy startproject xxx):新建一个新的爬虫项目
明确目标 (编写items.py):明确你想要抓取的目标
制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页
存储内容 (pipelines.py):设计管道存储爬取内容
今天我们就以B站小姐姐为例,带大家亲自体验一下scrapy的强大之处!
创建spider项目
首先我们来看看scrapy的常用命令:
scrapy startproject 项目名称 # 创建一个爬虫项目或工程
scrapy genspider 爬虫名 域名 # 在项目下创建一个爬虫spider类
scrapy runspider 爬虫文件 #运行一个爬虫spider类
scrapy list # 查看当前项目有多少个爬虫
scrapy crawl 爬虫名称 # 通过名称指定运行爬取信息
scrapy shell url/文件名 # 使用shell进入scrapy交互环境
第一步我们创建一个scrapy工程, 进入到你指定的目录下,使用命令:
scrapy startproject 项目名称 # 创建一个爬虫项目或工程
此时可以看到该目录下多了一个叫bbbbl的文件夹