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,如下图所示:
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
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平台步骤或许有点差异,但原理和步骤基本相同。
网友评论