Scrapy
1、python爬虫框架Scrapy
爬虫框架是实现爬虫功能的一个软件结构和功能组建集合
爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫
2、scrapy爬虫框架“5+2”结构解析
2.1、Engine:框架核心,不需用户编写
2.2、Downloader:下载网页,不需用户修改
2.3、Scheduler:对爬虫请求进行调度管理,不需用户修改
2.4、Downloader Middleware:
目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制;
功能:修改、丢弃、新增请求或响应;
用户可以编写配置代码
2.5、Spider:解析Downloader返回的响应(Response);产生爬取项(scraped item);产生额外爬取请求(Request),
2.6、Item Pipelines:以流水线的形式处理Spider产生的爬取项;由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型;可能操作包括:清理、检查和查重爬取项中的HTML数据、将数据存储到数据库。
需要用户编写配置代码
2.7、Spider Middleware:
目的:对请求和爬取项再处理
功能:修改、丢弃、新增请求或爬取项
用户可以编写配置代码
3、requests库与Scrapy比较
requests库 | scrapy框架 |
页面级爬虫 | 网站级爬虫 |
功能库 | 框架 |
并发性不足,性能差 | 并发行好,性能较高 |
重点在于页面下载 | 重点在于爬虫结构 |
定制灵活 | 一般定制灵活,深入定制困难 |
上手简单 | 入门稍难 |
4、Scrapy爬虫的常用命令
4.1、startproject:创建一个新工程 scrapy startproject <name> [dir]
4.2、genspider:创建一个爬虫 scrapy genspider [options] <name> <domain>
4.3、settings:获得爬虫配置信息 scrapy settings [options]
4.4、crawl:运行一个爬虫 scrapy crawl <spider>
4.5、list:列出工程中所有爬虫 scrapy list
4.7、shell:启动URL调试命令行 scrapy shell [url]