Scrapy框架介绍

Scrapy框架介绍

  • Scrapy是一个为了爬取网站信息,提取结构性数据而编写的应用框架。Scrapy用途广泛,可用于数据挖掘、监测和自动化测试等。
1.网络爬虫原理
  • 网络爬虫的英文为Web Spider,又称做网络蜘蛛或网络机器人。简单来说就是一种按照一定的规则,自动地抓取互联网中信息的程序或脚本。
1.1 爬虫执行的流程
  • 我们知道,网络爬虫的基本流程是:模拟用户使用浏览器向网站发送请求,网站响应请求后将网页文档发送过来,爬虫对网页做信息提取和存储。具体流程如图3-1所示。
    在这里插入图片描述
  • (1)发送请求。爬虫设定一个URL,模拟浏览器使用HTTP协议向该网站服务发送请求。
  • (2)获取HTML文档。服务器接收到请求后,将HTML文档(或者图片、视频等其他资源)发送给爬虫。
  • (3)抽取数据。爬虫使用XPath或BeautifulSoup从HTML文档中抽取有用的数据。
  • (4)保存数据。将抽取到的数据保存到文件(CSV、JSON、TXT等)或数据库(MySQL、MongoDB)中,实现数据的持久化存储。
2.Scrapy框架结构及执行流程
  • Scrapy框架结构和流程设计遵循网络爬虫的基本原理。通过组价封装不同的功能模块;通过请求和响应类封装数据流;通过引擎指挥整个系统协调运行。
2.1 Scrapy框架结构
  • 理解了HTTP和爬虫的基本原理,就不难理解Scrapy的框架结构了。如图3-2所示为Scrapy的框架结构,包含了不同功能的组件、系统中发生的数据流及执行流程。
    在这里插入图片描述
1.组件
  • 下面简单介绍一下Scrapy框架结构中包含的组件。
  • 引擎(Engine) ,引擎犹如总指挥,是整个系统的“大脑”,指挥其他组件协同工作。
  • 调度器(Scheduler),调度器接收引擎发过来的请求,按照先后顺序,压入队列中,同时去除重复的请求。
  • 下载器(Downloader),下载器用于下载网页内容,并将网页内容返回给爬虫(Scrapy下载器是建立在twisted这个高效的异步模型上的)。
  • 爬虫(Spiders),爬虫作为最核心的组件,用于从特定的网页中提取需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。
  • 项目管道(Item Pipelines),项目管道负责处理爬虫从网页中抽取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息等。
  • 下载中间件(Downloader Middlewares),下载器中间件介于引擎和下载器之间,主要处理Scrapy引擎与下载器之间的请求及响应。
  • 爬虫中间件(Spider Middlewares),爬虫中间件介于引擎和爬虫之间,主要工作是处理爬虫的响应输入和请求输出。
2.数据流
  • Scrapy框架结构中传递和处理的数据主要有以下3种:
    • 向网站发送的请求数据
    • 网站服务器返回的响应数据
    • 解析后的结构数据(类似于字典)。
  • Scrapy中定义的Request和Response类,用于保存请求和响应数据;Item类保存解析后的结构数据。它们分别对应于3-2中标识的Requests、Response和Items。
2.2 Scrapy执行流程
  • 图3-2中第1-4步,执行的是HTTP请求,传递和处理的是向网站服务器发送的请求数据。
  • 第1步:爬虫(Spider)使用URL(要爬取页面的网址)构造一个请求(Request)对象,提交给引擎(Engine)。如果请求要伪装成浏览器,或者设置代理IP,可以先在爬虫中间件中设置,再发送给引擎。
  • 第2步:引擎将请求安排给调度器,调度器根据数据请求的优先级确定执行顺序。
  • 第3步:引擎从调度器获取即将要执行的请求。
  • 第4步:引擎通过下载中间件,将请求发送给下载器下载页面。
  • 图3-2中第5-8步,执行的是HTTP响应,传递和处理的是网站服务器返回的相应数据。
  • 第5步:页面完成下载后,下载器会生成一个响应(Response)对象并将其发送给引擎。下载后的数据会保存于响应对象中。
  • 第6步:引擎接收来自下载器的响应对象后,通过爬虫中间件,将其发送给爬虫(Spider)进行处理。
  • 第7步:爬虫将抽取到的一条数据实体(Item)和新的请求(如下一页的链接)发送给引擎。
  • 第8步:引擎将从爬虫获取到的Item发送给项目管道(Item Pipelines),项目管道实现数据持久化等功能。同时将新的请求发送给调度器,再从第2步开始重复执行,引擎关闭该网站。
3.Scrapy安装
  • 在Anaconda中,它已经帮我们安装好了Scrapy所有的依赖库。
3.1 使用pip安装Scrapy
  • 这里还是使用pip安装Scrapy框架,命令如下:
pip install scrapy
  • 安装后需要验证是否安装成功,在终端首先输入python,之后输入如下代码:
import scrapy
  • 运行代码后,如果没有错误提示信息,说明Scrapy已经安装成功。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值