环境搭建上参看官方说明文档: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
被正确安装:
<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:
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:
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运行流程大概如下:
- 首先,引擎从调度器中取出一个链接(URL)用于接下来的抓取
- 引擎把URL封装成一个请求(Request)传给下载器,下载器把资源下载下来,并封装成应答包(Response)
- 然后,爬虫解析Response
- 若是解析出实体(Item),则交给实体管道进行进一步的处理。
- 若是解析出的是链接(URL),则把URL交给Scheduler等待抓取
本文链接地址: Scrapy笔记零 环境搭建与五大组件架构