scrapy 传递参数报错

#!/usr/bin/python3

import sys

from scrapy.cmdline import execute

class main(): def run(self): argv = sys.argv argv.append('-s') argv.append('LOG_FILE=logs/' + argv[2] + '.log') argv.append('-s') argv.append('LOG_FORMAT=%(asctime)s [' + argv[2] + '][%(name)s] %(levelname)s: %(message)s') print(argv[3]) print(argv) sys.exit(execute(argv))

if name == 'main': main().run()

这是一个 main 类

下面我再有一个 supervisor 类

#!/usr/bin/python3 import sys import datetime from main import main import time from scrapy.cmdline import execute

if name == 'main': argv = sys.argv while 1: startTime = time.time() main().run() endTime = time.time() time.sleep(argv[3]) if argv[3] < endTime - startTime: logerror_path = "logs/logerror.log"

这是一个 supervisor 类,这里调用 main 类但是这里我 运行如下


shenjianlin@newdev:~/my_project/Espider/Espider(shenwei/spider_12_20)$ python3 supervisor.py crawl traveldaily ['supervisor.py', 'crawl', 'traveldaily', '-s', 'LOG_FILE=logs/traveldaily.log', '-s', 'LOG_FORMAT=%(asctime)s [traveldaily][%(name)s] %(levelname)s: %(message)s'] shenjianlin@newdev:~/my_project/Espider/Espider(shenwei/spider_12_20)$ python3 supervisor.py crawl traveldaily 120 ['supervisor.py', 'crawl', 'traveldaily', '120', '-s', 'LOG_FILE=logs/traveldaily.log', '-s', 'LOG_FORMAT=%(asctime)s [traveldaily][%(name)s] %(levelname)s: %(message)s'] Usage
scrapy crawl [options] <spider></spider>

crawl: error: running 'scrapy crawl' with more than one spider is no longer supported shenjianlin@newdev:~/my_project/Espider/Espider(shenwei/spider_12_20)$ python3 supervisor.py crawl traveldaily 120 120 ['supervisor.py', 'crawl', 'traveldaily', '120', '-s', 'LOG_FILE=logs/traveldaily.log', '-s', 'LOG_FORMAT=%(asctime)s [traveldaily][%(name)s] %(levelname)s: %(message)s'] Usage
scrapy crawl [options] <spider></spider>

crawl: error: running 'scrapy crawl' with more than one spider is no longer supported

如何才能在 main 中支持传一个 sleep 时间的参数?### 题目描述



阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题