Python教程:scrapy学习重点

scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可应用在包括数据挖掘,信息处理或存储历史数据等一系列的需求之中,我们只需要实现少量的代码,就能够快速的抓取,Scrapy使用了Twisted异步网络框架,可以加快我们的下载速度。
摘要由CSDN通过智能技术生成

scrapy介绍:

scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可应用在包括数据挖掘,信息处理或存储历史数据等一系列的需求之中,我们只需要实现少量的代码,就能够快速的抓取,Scrapy使用了Twisted异步网络框架,可以加快我们的下载速度。

scrapy的数据流图片:

scrapy的基本模块:

爬虫

爬虫主要就发起起始请求,并通过回调函数,对响应数据进行提取,生成item给管道进行后续处理,或者生成新的请求。

引擎

从上图就能看出,引擎处于整个scrapy项目的核心位置,其主要处理整个系统的数据流,触发各种事件。

调度器

调度器其实就是维护了一个先进先出的队列,对于入队的请求会进行去重与过滤,可以保证请求出队的顺序,保证请求按顺序执行。其中请求顺序并不一定是固定的,可以通过在发起请求或在中间件中时设置priority来改变优先级,其中值越小越快。比如在发起的请求的参数中添加scrapy.Request(property= 目标优先级),或直接request.property=目标优先级。

下载器

下载器其实就是发送请求并接受保存响应数据,是基于twisted异步框架实现的,可以同时处理多个请求,在回调中将下载结果传递给引擎。在请求的过程中会处理重定向,保证获取最终数据;维护cookie与session数据,确保对于不同的请求能保存持久性对话。

中间件

中间件主要包括爬虫,下载和扩展中间件,其中爬虫中间件主要处理爬虫与引擎之间的非起始请求与响应,而下载中间件主要处理下载器和引擎之间的非起始请求与响应。旨在数据的传输过程中对其进行校验与增强。还有扩展的中间件。

管道

管道其作用主要用于处理item数据,进行过滤与提取,或者进行持久化,生成相应文件等操作

数据执行流程
  1. 通过运行的爬虫的start_urls或start_requests方法,通过爬虫中间件的process_start_requests()将起始请求发送给引擎。
  2. 引擎将请求传递给调度器进行构建,调度器根据调度策略,将构建好的请求返回和给引擎。
  3. 引擎将请求通过发送给下载器,下载器下载完成后,再将响应返回给引擎。在这期间请求与响应都会经过下载中间件。
  4. 引擎在接收到响应后,会将响应返回给爬虫的默认回调解析函数parse,在响应返回时会经过爬虫中间件的process_responses()
  5. 在回调解析函数中,会根据代码逻辑,重新发起请求给引擎,或者生成item并传给管道
  6. 重新发送请求,则会重复上述次序,继续执行;传给管道,对数据进行持久化或文本存储等

开始项目

  1. 环境准备 python3.6以上版本,注意安装scrapy前需要安装lxml,parsel,pyOpenSSL,Twisted,cryptography,w3lib,它们是s
  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值