Python教程:scrapy学习重点

本文详细介绍了Python的Scrapy爬虫框架,包括scrapy的介绍、数据流图片、基本模块如爬虫、引擎、调度器、下载器、中间件和管道的工作原理。还阐述了数据执行流程,以及如何开始Scrapy项目,分析了各文件的功能,如spider、下载中间件、爬虫中间件、item和pipelines。最后提到了环境准备和项目启动步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,它们是scrapy项目的基础依赖。
  2. 在目标文件夹,执行下面命令,生成scrapy项目,并在项目的spider文件夹下生成对应的爬虫,并运行爬虫。可以观察到项目运行成功。
 scrapy 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值