文章目录

前言

现在我们进入一个框架的学习,利用好这个框架,我们可以更快速,更方便的获取到网页上的内容和我们想要的数据。这个框架就是Scrapy框架。

(一)什么是Scrapy

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

(二)基本功能

Scrapy是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。

(三)基本架构

下面是scrapy框架的官方架构图。绿色箭头为数据流向。

python爬虫从0到1-Scrapy框架的介绍_爬虫

Scrapy Engine(引擎):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。

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

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

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

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

Downloader Middlewares(下载中间件):一个可以自定义扩展下载功能的组件。

Spider Middlewares(Spider中间件):一个可以自定扩展和操作引擎和Spider中间通信的功能组件。

(四)Scrapy框架的基本使用

当我们用scrapy框架创建一个项目的时候我们都需要在控制台(终端)输入命令来创建/执行一个项目或者一个爬虫文件。

(1)创建爬虫的项目

在终端输入创建项目的指令

scrapy startproject 项目的名字
注:项目的名字不可以由数字开头或者带有中文!

实例:

python爬虫从0到1-Scrapy框架的介绍_ide_02

(2)创建爬虫的文件

这里需要在spiders文件夹中创建爬虫文件,所以在创建爬虫文件前需要将目录转换到spiders目录下

cd 项目的名字\项目的名字\spiders

随后创建爬虫文件

scrapy genspiders 爬虫文件的名字 爬取的网页

实例:

python爬虫从0到1-Scrapy框架的介绍_数据挖掘_03

(3)执行爬虫文件

同样,运行爬虫文件时,也是需要在终端上输入指令的

scrapy crawl 爬虫文件的名字

实例:

python爬虫从0到1-Scrapy框架的介绍_爬虫_04


注:在执行爬虫文件的时候,存在robot协议即君子协议。每个网站都制定了君子协议,使得不能让其他网站爬取网页数据,因此我们需要在配置文件中将robot协议注释掉才可以获得网页内容。

python爬虫从0到1-Scrapy框架的介绍_python_05

(五)Scrapy中response的属性和方法

1.获取响应的字符串

response.text

2.获取二进制数据

response.body

3.利用xpath获取内容

直接利用xpath语法来解析response中的内容

response.xpath()

4.获取seletor对象的属性值

response.extract()

5.获取seletor列表的第一个数据

response.extract_first()