Scrapy笔记零 环境搭建与五大组件架构

2019-11-26 13:30:19 浏览数 (1)

环境搭建上参看官方说明文档:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/install.html

环境搭建:

windows环境下:

从 https://www.python.org/download/ 上安装Python 2.7.

您需要修改 PATH 环境变量,将Python的可执行程序及额外的脚本添加到系统路径中。将以下路径添加到 PATH 中:

代码语言:javascript复制

 
 C:Python2.7;C:Python2.7Scripts;
     1
  C:Python2.7;C:Python2.7Scripts;   

  

请打开命令行,并且运行以下命令来修改 PATH:

代码语言:javascript复制

 c:python27python.exe c:python27toolsscriptswin_add2path.py
     1
  c:python27python.exe c:python27toolsscriptswin_add2path.py   
   

关闭并重新打开命令行窗口,使之生效。运行接下来的命令来确认其输出所期望的Python版本:

代码语言:javascript复制
 
 <span class="n">python</span> <span class="o">--</span><span class="n">version</span>
     1
  <span class="n">python</span> <span class="o">--</span><span class="n">version</span>   
  
  • 从 http://sourceforge.net/projects/pywin32/ 安装 pywin32 请确认下载符合您系统的版本(win32或者amd64)
  • (只有Python<2.7.9才需要) 从 https://pip.pypa.io/en/latest/installing.html 安装 pip 打开命令行窗口,确认 pip 被正确安装:
代码语言:javascript复制

 <span class="n">pip</span> <span class="o">--</span><span class="n">version</span>
     1
  <span class="n">pip</span> <span class="o">--</span><span class="n">version</span>   
 
  • 到目前为止Python 2.7 及 pip 已经可以正确运行了。接下来安装Scrapy:
代码语言:javascript复制

 pip install Scrapy
     1
  pip install Scrapy   
 

Ubuntu 9.10及以上版本

  • 不要 使用Ubuntu提供的 python-scrapy ,相较于最新版的Scrapy,该包版本太旧,并且运行速度也较为缓慢。
  • 您可以使用官方提供的 Ubuntu Packages 。该包解决了全部依赖问题, 并且与最新的bug修复保持持续更新。

如果您更倾向于本地构建python的依赖,而不是使用系统库(system package), 您需要先安装非python的依赖:

代码语言:javascript复制

   sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
     1
   sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev   
  •         您可以使用 pip 安装Scrapy:
代码语言:javascript复制

  pip install Scrapy
     1
  pip install Scrapy   

Scrapy五大组件介绍

Scrapy框架主要由五大组件组成,它们分别是调试器(Scheduler)、下载器(Downloader)、爬虫(Spider)和实体管道(Item Pipeline)、Scrapy引擎(Scrapy Engine)。下面我们分别介绍各个组件的作用。

调度器

调度器,说白了可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是什么,同时去除重复的网址(不做无用功)。用户可以跟据自己的需求定制调度器。

下载器

下载器,是所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。

爬虫

爬虫,是用户最关心的部份。用户定制自己的爬虫,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

实体管道

实体管道,用于处理爬虫提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

Scrapy引擎

Scrapy引擎是整个框架的核心。它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

Scrapy运行流程

Scrapy运行流程大概如下:

  1. 首先,引擎从调度器中取出一个链接(URL)用于接下来的抓取
  2. 引擎把URL封装成一个请求(Request)传给下载器,下载器把资源下载下来,并封装成应答包(Response)
  3. 然后,爬虫解析Response
  4. 若是解析出实体(Item),则交给实体管道进行进一步的处理。
  5. 若是解析出的是链接(URL),则把URL交给Scheduler等待抓取

本文链接地址: Scrapy笔记零 环境搭建与五大组件架构

0 人点赞