Python 网络爬虫笔记9 -- Scrapy爬虫框架

Python 网络爬虫笔记9 – Scrapy爬虫框架


Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。

课程链接:Python网络爬虫与信息提取
参考文档:
Requests 官方文档(英文)
Requests 官方文档(中文)
Beautiful Soup 官方文档
re 官方文档
Scrapy 官方文档(英文)
Scrapy 官方文档(中文)


一、安装与简介


1、安装

# 安装
pip install scrapy

# 测试
scrapy ‐h

2、简介

  • Scrapy是一个快速、功能强大的网络爬虫框架
  • Scrapy不是一个函数功能库,而是一个爬虫框架。爬虫框架是实现爬虫功能的一个软件结构和功能组件的集合。爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。

二、Scrapy 框架


1、Scrapy 框架图

在这里插入图片描述


2、Scrapy 框架结构(5+2)

Engine: 不需要用户修改

  • 控制所有模块之间的数据流,不间断从Scheduler处获得爬取请求,直至请求为空
  • 根据条件触发事件

Downloader: 不需要用户修改

  • 根据请求下载网页

Scheduler: 不需要用户修改

  • 对所有爬取请求进行调度管理

Downloader Middleware: 用户可以编写配置代码

  • 目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制
  • 功能:修改、丢弃、新增请求或响应

Spider: 需要用户编写配置代码

  • 解析Downloader返回的响应(Response)
  • 产生爬取项(scraped item)
  • 产生额外的爬取请求(Request)

Item Pipelines: 需要用户编写配置代码

  • 以流水线方式处理Spider产生的爬取项
  • 由一组操作顺序组成,类似流水线,每个操作是一个 Item Pipeline 类型
  • 可能操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库

Spider Middleware: 用户可以编写配置代码

  • 目的:对请求和爬取项的再处理
  • 功能:修改、丢弃、新增请求或爬取项

3、Scrapy 框架数据流

  1. Engine从Spider处获得爬取请求(Request) (框架入口)
  2. Engine将爬取请求转发给Scheduler,用于调度
  3. Engine从Scheduler处获得下一个要爬取的请求
  4. Engine将爬取请求通过中间件发送给Downloader
  5. 爬取网页后,Downloader形成响应(Response)通过中间件发给Engine
  6. Engine将收到的响应通过中间件发送给Spider处理
  7. Spider处理响应后产生爬取项(scraped Item)和新的爬取请求(Requests)给Engine
  8. Engine将爬取项发送给Item Pipeline(框架出口)
  9. Engine将爬取请求发送给Scheduler

三、Scrapy 命令


1、使用方式

  • Scrapy是给程序员用的专业爬虫框架,提供Scrapy命令行操作方式
  • 使用windows时,直接打开cmd输入命令即可
# Scrapy命令行格式
scrapy <command> [options] [args]

2、常用命令

命令说明格式
startproject创建一个新工程scrapy startproject < name> [dir]
genspider创建一个爬虫scrapy genspider [options] < name> < domain>
settings获得爬虫配置信息scrapy settings [options]
crawl运行一个爬虫scrapy crawl < spider>
list列出工程中所有爬虫scrapy list
shell启动URL调试命令行scrapy shell [url]

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值