Python网络爬虫框架 Scrapy简介
发布日期:2022-09-27 12:04:43 浏览次数:2 分类:技术文章

本文共 2090 字,大约阅读时间需要 6 分钟。

Scrapy 网络爬虫框架

Scrapy的安装

cmd 执行:pip install scrapy测试安装:scrapy -h

Scrapy介绍

Scrapy不是一个函数功能库,而是一个爬虫框架。

​ 爬虫框架:

爬虫框架是实现爬虫功能的一个软件结构和功能组件集合;爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫;

Scrapy爬虫框架结构

在这里插入图片描述

数据流的过程:

①:Engine从Spider处获取爬取请求(Request)

②:Engine将爬取请求转发给Scheduler,用于调度

③:Engine 从Scheduler处获取下一个要爬取的请求

④:Engine将爬取请求通过中间件发送给Downloader

⑤:爬虫网页后,Downloader形成相应(Response)通过中间件发给Engine

⑥:Engine将收到的响应通过中间件发送给Spider处理

⑦:Spider处理响应后产生爬取项(scraped Item)和新爬取请求(Requests)给Engine

⑧:Engine将爬取项发送给Item Pipeline(框架出口)

⑨:Engine将爬取请求发送给Scheduler

补充

Engine控制各模块数据流,不间断从Scheduler处爬取请求,直至请求为空;

框架入口:Spider的初始爬取请求

框架出口:Item Pipeline

爬虫结构介绍----->五个模块+二个中间件

#————————————————————————————————————————

Engine -----不需要用户修改

(1)控制所有模块之间的数据流

(2)根据条件触发事件

Downloader-----不需要用户修改

根据请求下载网页

Scheduler-----不需要用户修改

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

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

(1)解析Dowloader返回的响应(Response)

(2)产生爬去项(scraped item)

(3)产生额外的爬取请求(Request)

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

(1)以流水线方式处理Spider产生的爬取项

(2)由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型

(3)可能操作包括:清理、检验和查重爬取项中的HTML数据、将数据存储到数据库

#————————————————————————————————————————

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

目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制

功能:修改、丢弃、新增请求和响应

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

目的:对请求和爬取项的再处理

功能:修改、丢弃、新增请求或爬取项。

#————————————————————————————————————————

Scrapy 命令行

Scrapy常用命令
命令 说明 格式
startproject 创建一个新工程 scrapy startproject [dir]
genspider 创建一个爬虫 scrapy genspider [option]
settings 获取爬虫配置信息 scrapy settings [options]
crawl 运行一个爬虫 scrapy crawl
list 列出工程中所有爬虫 scrapy list
shell 启动URL调试命令行 scrapy shell [url]
Scrapy 采用命令行创建和运行爬虫的原因:

命令行更容易自动化,适合脚本控制。本质上,Scrapy是给程序员用的,功能更重要,而不是界面。

Scrapy爬虫的数据类型

Request类

Request对象表示一个HTTP请求,由Spider生成,由Downloader执行。

属性或方法 说明
.url Request对应的请求URL地址
.method 对应的请求方法,‘GET’ 'POST’等
.headers 字典类型风格的请求头
.body 请求内容主体,字符串类型
.meta 用户添加扩展信息,在Scrapy内部模块传递信息使用
.copy() 复制该请求
Response类

Response对象表示一个HTTP响应,由Downloader生成,由Spider处理

属性或方法 说明
.url Reponse对应的URL地址
.status HTTP状态码,默认是200
.headers Reponse对应的头部信息
.body Response对应的内容信息,字符串类型
.flags 一组标记
.request 产生Response类型对应的Request对象
.copy() 复制该响应
Item类

Item对象表示一个从HTML页面中提取的信息内容,由Spider生成,由Item Pipeline处理;Item类似字典类型,可以按照字典类型操作。

转载地址:https://blog.csdn.net/qq_39962271/article/details/123909524 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python网络爬虫模块
下一篇:python网络爬虫学习笔记1(互联网和HTTP,HTML)

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月04日 02时11分54秒