scrapy框架初体验

scrapy框架是一个常用的爬虫框架,其中内嵌了许多的内容,使得爬取网页的过程不再像原生那样复杂。

Scrapy的架构
在这里插入图片描述

引擎:负责控制数据流在所有组件流动,并在相应动作是触发事件。可以理解为爬虫的大脑

调度器:从引擎接受请求(requests)并将它们加入爬虫队列,可以理解把等待爬取的网页排队的功能

下载器:负责获取页面并提供给引擎,相当于之前学的“获取网页”数据

爬虫器:负责解析网页(response),提取数据,或额外跟进一些url,相当于之前的解析网页的功能。

管道:负责处理被爬虫提取的数据(items),例如保存下来,相当于之前的“储存数据”功能

下载器中间件:引擎的下载器中间的一个部分,处理下载器传递给引擎的数据(response),一般不做处理

爬虫器中间件:引擎和爬虫器中间的一部分,处理爬虫器的输入(response)和输出(items,requests)

作为一个框架,上面列出来的各种组件还是很复杂的,一不小心就处于一个懵逼的状态了。

组件 对应爬虫三大流程 Scrapy项目是否需要修改
引擎 无需修改
调度器 无需修改
下载器 获取网页(requests库) 无需修改
爬虫器 解析网页(beautifulsoup库) 需要
管道 储存数据 需要
下载器中间件 获取网页(个性化部分) 一般不用
爬虫器中间件 解析网页(个性化部分) 一般不用

可以看出来,使用scrapy框架之后,我们要写的内容就变得少了很多,一般来说,只需要负责好爬虫器和管道就可以了。

?
到底数据是怎么在scrapy中流动的呐?
(1) 引擎:向爬虫器发送第一个要抓取的url
(2) 爬虫器:提供www…….给引擎
(3) 引擎:接收到网址,交给调度器排序入队
(4) 调度器:将它处理成请求(requests)给引擎
(5) 引擎:接收到request,并通过下载器中间件给下载器下载
(6) 下载器:根据request下载页面,返回回应(response)给引擎
(7) 引擎:接收到response,并通过爬虫器中间件给爬虫器处理
(8) 爬虫器:处理response,提取内容,返回item给引擎,如果有跟进的request也会提交给引擎
(9) 引擎:接收到item,交给管道,新的request交给调度器
(10) 管道:储存数据

从这里就可以很明显的看出来scrapy框架的优缺点。
写爬虫的人,就像古代练剑一样,从开始用的木剑,到绝世好剑,最后到一草一木,爬虫也是这样,从最开始的不用框架,到使用框架,最后再到不用框架。
最开始使用request和bs4的时候很方便,但是接触了scrapy之后,你就会发现,原来真正的只需要几行代码就可以实现一个爬虫,这时候你会觉得scrapy很好用,但是随着需求越来越奇怪,也就是说你需要特地的去定制化一些功能的时候,scrapy作为一种条条框框的框架已经是不能满足这些需求了,所以还是会回到原始的request和bs4上。
Scrapy的优势就是并发性比较强,在做大批量的数据爬虫的时候简单易用,此外,做一些长期的爬虫项目维护管理也比较容易。
相比之下,不使用框架的话,爬虫的定制化就比较高,身经百战的高手总是可以杀人无形之中,爬虫之中最关键的就是反爬虫,scrapy毕竟作为一个框架,写的太死了,固然他也有中间件可以用来使用,但是比起不用框架的各种扩展功能,scrapy功能还是不够强大。

scrapy的安装

在Windows下的scrapy安装非常简单,只需要pip install scrapy就可以。但是一般来说都不会这么简单。
Scrapy框架是一个Python爬虫的框架没错,但是他确是要基于Twisted的,所以我们可以直接选择先安装Twisted组件,再安装Scrapy框架程序可以成功安装。
组件下载完成后文件名为“Twisted-20.3.0-cp38-cp38-win_amd64.whl”。我们打开cmd命令,在dos窗口中直接输入“pip install D:\软件安装包\Twisted-20.3.0-cp38-cp38-win_amd64.whl”其中“D:\软件安装包\Twisted-20.3.0-cp38-cp38-win_amd64.whl”为Twisted安装文件在电脑上的存放路径
使用pip安装Scrapy框架程序。
在cmd命令的DOS窗口中输入“pip install scrapy”进行安装。

制作爬虫

制作Scrapy爬虫大致需要4步:
新建项目(scrapy startproject xxx):新建一个新的爬虫项目。
明确目标(编写items.py):明确你想要抓取的目标。
制作爬虫(spiders/xxspider.py):制作爬虫开始爬取网页。
存储内容(pipelines.py):设计管道存储爬取内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值