个人对爬虫框架Scrapy的理解

Scrapy是一款用于网站数据抓取的应用框架,采用Twisted异步网络库提高下载效率,支持中间件灵活处理各种需求。本文介绍其工作流程、优缺点。

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

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量代码,就能够快速的抓取的数据内容。Scrapy使用了Twisted一部网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。

scrapy框架的工作流程:

  1. 首先Spider(爬虫)将需要发送请求的url(requests)经ScrapyEngine(引擎)交给Scheduer(调度器)。
  2. Scheduler(排序,入队)处理后,经ScrapyEngine(引擎),DownloaderMiddlewares(下载器中间件,可选,主要有User_Agent,Proxy代理)交给Downloader(下载器)。
  3. Downloader(下载器)向互联网发送请求,并接受下载响应(response)。将响应(response)经ScrapyEngine(引擎),SpiderMiddlewares(爬虫中间件,可选)交给Spiders(爬虫)。
  4. Spiders(爬虫)处理response(响应界面),提取数据并将数据经ScrapyEngineScrapyEngine(引擎)交给ItemPipeline保存(可以是本地,也可以是数据库)。提取url重新经ScrapyEngineScrapyEngine(引擎)交给Scheduler(调度器)进入下一个循环。直到无Url请求程序停止结束。

流程图:

优点:

  1. scrapy是异步的;
  2. 采取可读性更强的xpath代替正则;
  3. 强大的统计和log系统;
  4. 支持shell方式,方便独立调试;
  5. 写middleware,方便写一些统一的过滤器;
  6. 通过管道的方式存入数据库。

缺点:

  1. 基于python的爬虫框架,扩展性比较差;
  2. 基于 twisted 框架,运行中的 exception 是不会干掉 reactor(反应器),并且异步框架出错后是不会停掉其他任务的,数据出错后难以察觉。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值