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

版权声明: https://blog.csdn.net/Wang_Jiankun/article/details/83785948

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]

猜你喜欢

转载自blog.csdn.net/Wang_Jiankun/article/details/83785948