Python爬虫 --- 2.1 Scrapy 爬虫框架的安装与基本介绍

原文连接:https://www.fkomm.cn/article/...html

此次介绍一个及其强大的爬虫框架---Scrapy,Scrapy由 Python 编写,是一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途普遍,能够用于数据挖掘、监测和自动化测试。

Srapy框架的安装:

不管是在windows仍是mac以及linux下,均可以是用pip工具进行快速安装:python

$ pip install scrapylinux

这里推荐一个很是好用的Python调试shell:ipython。web

ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多颇有用的功能和函数。学习ipython将会让咱们以一种更高的效率来使用python。同时它也是利用Python进行科学计算和交互可视化的一个最佳的平台。shell

咱们依旧用pip工具进行安装:数据库

$ pip install ipythonwindows

Scrapy框架的基本介绍:

首先,咱们得明白一点,Scrapy不是一个功能函数库,而是是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架。简单的说,他是一个半成品,能够帮助用户简单快速的部署一个专业的网络爬虫。若是说前面咱们写的定制bs4爬虫是“手动挡”,那Scrapy就至关于“半自动档”的车。bash

其次,Scrapy 使用了 Twisted(其主要对手是Tornado)异步网络框架来处理网络通信,能够加快咱们的下载速度,不用本身去实现异步框架,而且包含了各类中间件接口,能够灵活的完成各类需求。网络

框架的力量,用户只须要定制开发几个模块就能够轻松的实现一个爬虫,用来抓取网页内容以及各类图片,很是之方便。多线程

Scrapy框架结构:

首先来一张框架总体的图:

图片描述

从图中咱们能够清楚的看到,整个框架一共分为五个部分:

  • SPIDERS
  • ITEM PIPELINES
  • DOWNLOADER
  • SCHEDULER
  • ENGIINE

这五个部分互相协做,共同完成了整个爬虫项目的工做。下面咱们来一个一个介绍。

SPIDERS:

Spiders这个模块就是整个爬虫项目中须要咱们手动实现的核心部分,就是相似咱们以前写的get_content函数部分,最主要的功能是 解析网页内容、产生爬取项、产生额外的爬去请求。

ITEM PIPELINES:

这个模块也是须要咱们手动实现的,他的主要功能是将咱们爬取筛选完毕的数据写入文本,数据库等等。总之就是一个“本地化”的过程。

DOWNLOADER:

这个模块,是Scrapy帮咱们作好的,不须要咱们本身编写,直接拿来用就行,其主要功能就是从网上获取网页内容,相似于咱们写的get_html函数,固然,比咱们本身写的这个简单的函数要强大不少

SCHEDULER:

这个模块对全部的爬取请求,进行调度管理,一样也是不须要咱们写的模块。经过简单的配置就能达到更加多线程,并发处理等等强大功能。

ENGIINE

这个模块至关于整个框架的控制中心,他控制着全部模块的数据流交换,并根据不一样的条件出发相对应的事件,一样,这个模块也是不须要咱们编写的。
Scrapy框架的数据流动:

先上一张图:

图片描述

说了各个模块的做用,那么整个项目跑起来的时候,数据究竟是怎么运做的呢? 上图的数字表明数据的流向,解释以下:

  1. Engine从Spider处得到爬取请求(request)
  2. Engine将爬取请求转发给Scheduler,调度指挥进行下一步
  3. Engine从Scheduler出得到下一个要爬取的请求
  4. Engine将爬取请求经过中间件发给Downloader
  5. 爬取网页后后,downloader返回一个Response给engine
  6. Engine将受到的Response返回给spider处理
  7. Spider处理响应后,产生爬取项和新的请求给engine
  8. Engine将爬取项发送给ITEM PIPELINE(写出数据)
  9. Engine将会爬取请求再次发给Scheduler进行调度(下一个周期的爬取)

系统化入门

Scrapy是一个很强大的爬虫框架,用起来很方便,可是要定制高级的功能就不是那么简单的了。这里只是简单的介绍了一下框架的基本原理,但具体如何使用不是一时半会可以说完的,后面我会在例子中一一展示这个框架的高级功能。

若是你想要更加系统化的学习理解这个框架,能够看看Scrapy的官方文档:[Scrapy 1.5文档]
(https://doc.scrapy.org/en/lat...,会让你受益不浅的!!!!


相关文章和视频推荐

圆方圆学院聚集 Python + AI 名师,打造精品的 Python + AI 技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/362788                       

相关文章
相关标签/搜索