Scrapy框架

Scrapy是一个基于Twisted的高效爬虫框架,本文详细介绍了其基本框架,包括调度器、下载器、爬虫、实体管道和引擎。阐述了Scrapy的工作流程,以及如何使用Scrapy创建项目、定义Item、编写爬虫和存储内容。通过CSS、XPATH、RE等方式提取数据,并展示了参数配置爬取的灵活性。
摘要由CSDN通过智能技术生成

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

scrapy的基本框架

scrapy的基本框架包括五部分:分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)下面我们分别介绍各个组件的作用。

(1)、调度器(Scheduler):

调度器,说白了把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是 什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。

(2)、下载器(Downloader):

下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主 要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。

(3)、 爬虫(Spider):

爬虫,是用户最关心的部份。用户定制自己的爬虫,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

(4)、 实体管道(Item Pipeline):

实体管道,用于处理爬虫提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

(5)、Scrapy引擎(Scrapy Engine):

Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

在这里插入图片描述

scrapy的工作流程

scrapy的工作流程如下:
1.首先爬虫将需要发送请求的url(requests)经引擎交给调度器;

2.排序处理后,经ScrapyEngine,DownloaderMiddlewares(有User_Agent, Proxy代理)交给Downloader;

3.Downloader向互联网发送请求,并接收下载响应.将响应经ScrapyEngine,可选交给Spiders;

4.Spiders处理response,提取数据并将数据经ScrapyEngine交给ItemPipeline保存;

5.提取url重新经ScrapyEngine交给Scheduler进行下一个循环。直到无Url请求程序停止结束。

如何利用scrapy爬取网页数据

使用Scrapy抓取一个网站有四个步骤:
一、创建一个Scrapy项目;
可以通过命令行进行创建,例如创建一个scrapyex的一个项目:
$ scrapy startproject scrapyex
这种图是用pycharm打开的scrapyex项目的目录
在这里插入图片描述
以下是爬虫的介绍:
“setting.py”:用来配置爬虫的
middlewares.py:用来定义中间件
item.py: 用来提前定义好需要下载的数据字段
pipelines.py:用来保存数据
scrapy.cfg:用来配置项目
二、定义Item容器;
三、编写爬虫
在编写爬虫之前需要创建一个爬虫,创建爬虫可以通过命令进入项目下直接创建,也可以手动创建,用命令创建的方式:

$ scrapy genspider [爬虫名称] [域名]

四、存储内容。

下面开始一个简单的一个scrapy的小例子:
在scrapyex/scrapyex/spiders下新建一个文件ex1.py,在该文件中编写代码如下所示:

import scrapy
class exq(scrapy.Spider): # 需要继承scrapy.Spider类
    name 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值