Python爬虫Scrapy框架入门(一)

Python爬虫Scrapy框架入门(一)

系列文章目录



前言

随着时代的发展爬虫技术也用得越来越多。
爬虫的领域也是巨大的,例如:搜索引擎、舆情分析与数据挖掘、导购、价格检测、黑产、灰产等等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是爬虫?

        爬虫,即网络爬虫,大家可以理解为在网络上爬行的一只蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛,如果它遇到自己的猎物(所需要的资源),那么它就会将其抓取下来。 比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。

这是一个很简单的爬虫
import requests

def crawl(url):
	response = requests.get(url)
	print(response.text)
if __name__ == '__main__':
	url = 'https:www.baidu.com'
	crawl(url)
	

二、Scrapy框架

1.Scrapy是什么?

        Scrapy是一个基于py的爬虫框架、是一个快速的高级网页抓取和网页抓取框架,用于抓取网站并从其页面中提取结构化数据。它可用于广泛的用途,从数据挖掘到监控和自动化测试。

2.Scrapy的五大基本构成

        Scrapy框架主要由五大组件组成,分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)、Scrapy引擎(Scrapy Engine)。



1、调度器(Scheduler):
      调度器,用来接受引擎发过来的请求,由过滤器重复的url并将其压如队列中,在引擎再次请求的时候返回,可以想象成一个URL(抓取网页的网址或者是链接)的优先队列,由他决定下一个要抓取的网址是什么,用户可以根据自己的需求定制调度器。


2、下载器
      下载器,是所有组件中负担最大的,他用于高速地下载网络上的资源,Scrapy的下载器代码不会太复杂,但效率高(原因:Scrapy下载器建立在twisted这个高效的异步模型上的)


3、爬虫
      爬虫是主要干活的,用户最关心的部分,它可以生成url,并从特定的url中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。


4、实体管道
      负责处理爬虫从网页中抽取的实体,主要的功能是持久化的实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。


5、引擎
      Scrapy引擎是整个框架的核心。它用来控制调度器、下载器、爬虫。实际上,引擎相当于计算机的CUP,它控制着整个流程。对整个系统的数据流进行处理,触发事务(框架核心)。

三、工作流程

详细步骤

1、spider中的url被封装成请求对象交给引擎(每一个对应一个请求对象)

2、引擎拿到请求对象之后,将全部交给调度器

3、调度器拿到所有请求对象后,通过内部的过滤器过滤掉重复的url,最后将去重后的所有url对应的请求对象压入到队列中,随后调度器读出其中一个请求对象,并将其交给引擎

4、引擎将调度器调出的请求对象交给下载器

5、下载器拿到该对象去互联网中下载数据

6、数据下载成功后会被封装到response中,随后response会交给到下载器

7、下载器将response交给引擎

8、引擎将response交给spider

9、spiders拿到response后调用回调方法数据解析,解析成功后生成item,随后spiders将item交给引擎

10、引擎将item交给管道,管道拿到item后进行数据的持久化存储

官网架构图

在这里插入图片描述


总结

以上的就是今天讲的Scrapy的一些基础。 上面简述了Scrapy的五大基本构成、Scarpy的工作流程。 下一篇给大家介绍一个Scarpy创建和基本使用。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值