1. 程式人生 > >scrapy專案在Linux伺服器上的部署

scrapy專案在Linux伺服器上的部署

scrapy專案在Linux伺服器上部署時,如果不想採用scrapyd(官方文件)的方式。啟動命令如果使用scrapy crawl {spider},執行一次就會停止,如果使用死迴圈的cmdline方式也是執行一次就停止。

最後在網上看到使用subprocess.Popen()方法,這個方法可以保證能夠迴圈執行。

但是,如果需要在liunx伺服器上跑的話,還是需要加上shell=True這個引數。不然,它會報找不到這個命令。

下面是我的scrapy專案的start.py檔案的改動,不想使用scrapyd部署的可以看一下,如果有問題或者有好的辦法,希望能與我溝通,共同學習。

import
subprocess import time import os CYCLE_TIME = 30 spiders = ['spider1', 'spider2', 'spider3', 'spider4'] cmd = 'scrapy crawl {}' i = 0 while True: for s in spiders: subprocess.Popen(cmd.format(s), shell=True if os.name == 'posix' else False) i += 1 print("第{}輪執行".format(i)) time.sleep(CYCLE_TIME) # os.name 在windows上是nt, linux上是posix
# 啟動命令可以採用nohup python -u start.py &