Scrapy
是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化数据的应用程序框架。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试; Scrapy
吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等;
1.Scrapy五大基本构成
-
Scrapy框架主要由五大组件组成,分别是调度器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine);
-
调度器 :可以假设成一个URL的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址;
-
下载器 :是所有组件中负担最大的,用于高速地下载网络上的资源;
-
爬虫 :是用户最关心的部份,用户定制自己的爬虫,用于从特定的网页中提取自己需要的信息,也可以从中提取出链接,让Scrapy继续抓取下一个页面;
-
实体管道 :用于处理爬虫提取的实体,要的功能是持久化实体、验证实体的有效性、清除不需要的信息;
-
Scrapy引擎 :是整个框架的核心,用来控制调试器、下载器、爬虫,实际上引擎相当于计算机的CPU,控制着整个流程;
2.使用scrapy框架爬取网页数据
-
第一步:首先要使用scrapy框架需要先安装它,可以使用pip安装scrapy框架,注意如果在Windows系统下直接使用pip命令行安装可能会报错,这时需要手动安装几个依赖库如wheel、lxml、Twisted、pywin32等,报错信息会提示你缺少哪个库。
这里提一下Twisted插件的安装,它的下载地址为: https://www.lfd.uci.edu/~gohlke/