四时宝库

程序员的知识宝库

Scrapy采集 环境搭建与五大组件架构

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

环境搭建:

windows环境下:

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

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

    Python

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

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

    Python

    1c:\python27\python.exec:\python27\tools\scripts\win_add2path.py

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

    Python

    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 被正确安装:

    Python

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

    Python

    1

    pip install Scrapy

Ubuntu 9.10及以上版本

  • 不要 使用Ubuntu提供的 python-scrapy ,相较于最新版的Scrapy,该包版本太旧,并且运行速度也较为缓慢。

  • 您可以使用官方提供的 Ubuntu Packages 。该包解决了全部依赖问题, 并且与最新的bug修复保持持续更新。

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

  • Python

    1sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
  • 您可以使用 pip 安装Scrapy:

  • Python

    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等待抓取

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接