【笔记】慕课-Python网络爬虫与信息提取-Scrapy框架(1)

Scrapy 网络爬虫原理

专业爬虫框架 5+2结构

爬虫框架:实现爬虫功能的一个软件结构和功能组件集合

已有实现,不需要修改:
ENGINE SCHEDULERDOWNLOADER

用户编写(配置):
SPIDER(入口)ITEMPIPELINES(出口)

5+2结构:五个模块,两个中间件

(一)ENGINE
控制所有模块之间的数据流
根据条件触发事件

(二)DOWNLOADER
获得请求,并根据请求下载网页

(三)SCHEDULER
调度和管理所有爬虫请求

(四)中间件DOWNLOADER MIDDLEWARE
实施ENGINE、SCHEDULER和DOWNLOADER之间进行用户可配置的控制,可修改和编写
功能:修改、丢弃、新增请求或响应

(五)SPIDER
由用户编写配置代码
1.解析DOWNLOADER返回的响应(Response)
2.产生爬取项(scraped item)
3.产生额外的爬取请求(Request)
它向整个框架提供了最初始的访问链接,同时对每次爬取回来的内容进行解析,再次产生新的爬取请求,并从内容中分析和提取出相关的数据

(六)ITEM PIPELINES
由用户编写配置代码
1.由一组操作顺序组成,类似流水线,每个操作是一个ITEM PIPELINES类型
2.以流水线方式处理SPIDER产生的爬取项
可能的操作包括:清洗、校验和查重爬取项中的HTML数据、将数据存储到数据库

(七)中间件SPIDER MIDDLEWARE
目的:对请求和爬取项的再处理
功能:修改、丢弃、新增或爬取项

两个中间件DOWNLOADER MIDDLEWARE和SPIDER MIDDLEWARE对其中的request、response和item做一定额操作,用户可据此控制一定的数据流

requests库和Scrapy爬虫的比较

requests库Scrapy
页面级爬虫网站级爬虫
功能库框架
并发性考虑不足,性能较差并发性好,功能较高
重点在于页面下载重点在于爬虫结构
定制灵活一般定制灵活,深度定制困难
上手简单入门稍难

都不能处理JavaScript、提交表单、应对验证码等功能(可拓展)

爬取速度快慢,需要根据实际情况来考虑

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值