二、如何快速部署Scrapy项目

Scrapy项目发布后是在scrapyd创建的web服务器里运行,所以需要安装和运行scrapyd,然后把scrapy项目部署到这个web服务器。而scrapyd运行在python虚拟机上,所以首先需要创建Python虚拟环境。 本例是继续上一篇把<<用Scrapy框架开发爬虫之一>>的项目部署到scapyd.

你的Scrapy项目能够在PyCharm环境里运行,应该已经有设定好的Python虚拟环境,可以通过 Preferences... 菜单项查看,如下图所示


Python虚拟环境

请注意你项目的Python虚拟机的路径,因为我们要进入这个路径,在命令行激活Python虚拟环境,当然也可使用PyCharm内嵌的终端,如下图所示


PyCharm内嵌终端

这里使用PyCharm内嵌的终端,可以通过图中的➕号,增加终端的个数。

1、检查命令pip list是否安装scrapyd,如没有安装,用命令pip install scrapyd进行安装,安装完毕,再使用pip list检查,是否有scrapyd,如下图所示:

图1-1

2、检测爬虫是否正确
运行命令:scrapy list 检查你编写的爬虫是否如下图列出来,

(SpiderEnv) ➜  mini_scrapy git:(master) ✗ scrapy list
quotes

如果没有请检查settings.py里是否有

SPIDER_MODULES = ['mini_scrapy.spiders']
NEWSPIDER_MODULE = 'mini_scrapy.spiders'

3、修改scrapy.cfg
回到scrapy项目IDE环境,打开scrapy.cfg, 打开url注释,在deploy后冒号记一个任意标记,例如:mini

[settings]
default = mini_scrapy.settings

[deploy:mini]
url = http://localhost:6800/
project = mini_scrapy

4、启动Web服务器
首先随便创建一个目录,如test,然后到该目录运行 scrapyd 命令,正确运行后打开浏览器,访问http://localhost:6800看是否正常访问,后续的项目就会发布到这里web容器中。以下是在Mac上做的实验:

(SpiderEnv) ➜  mini_scrapy git:(master) ✗ pwd
/Users/xiaoyongwang/mini_scrapy
(SpiderEnv) ➜  mini_scrapy git:(master) ✗ cd ~/Desktop
(SpiderEnv) ➜  Desktop pwd
/Users/xiaoyongwang/Desktop
(SpiderEnv) ➜  Desktop mkdir test 
(SpiderEnv) ➜  Desktop cd test
(SpiderEnv) ➜  test scrapyd
2019-04-08T20:21:55+0800 [-] Loading /Users/xiaoyongwang/Robot/SpiderEnv/lib/python3.7/site-packages/scrapyd/txapp.py...
2019-04-08T20:21:56+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/
2019-04-08T20:21:56+0800 [-] Loaded.
2019-04-08T20:21:56+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] twistd 18.7.0 (/Users/xiaoyongwang/Robot/SpiderEnv/bin/python 3.7.2) starting up.
2019-04-08T20:21:56+0800 [twisted.scripts._twistd_unix.UnixAppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor.
2019-04-08T20:21:56+0800 [-] Site starting on 6800

访问http://localhost:6800

Web界面

5、部署
在PyCharm里再开一个终端,运行如下命令,

scrapyd-deploy mini -p mini_scrapy

如图所示:


tt2.png

打包自动发布到第4步的创建的目录下
如果出现ModuleNotFoundError: No module named错误,请在工程的spiders下追加空的init.py文件即可

6、使用curl命令检查成果
例如通过调用如下curl命令,运行quotes爬虫。
例如:

curl http://localhost:6800/schedule.json -d project=mini_scrapy -d spider=quotes

可以通过这个链接查看并参考更多的scrapyd命令

至此,通过上述6个步骤,就把scrapy项目部署到了scrapyd,当然在windows或linux平台步骤或许有点差异,但原理和步骤基本相同。

你可能感兴趣的:(二、如何快速部署Scrapy项目)