scrapy 中这里的-s 是表示字符串吗?

2018-12-24 09:51:18 +08:00
 Ewig

#!/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 时间的参数?

1699 次点击
所在节点    Python
5 条回复
PulpFunction
2018-12-24 10:52:32 +08:00
我用的 scrapyd 套了 scrapy,用了初始化方法传递了参数,想传啥传啥
Ewig
2018-12-24 12:22:37 +08:00
@PulpFunction 怎么做的,能具体说说嘛
Ewig
2018-12-24 12:26:40 +08:00
@PulpFunction
argv = sys.argv
argv.append('-s')
argv.append('LOG_FILE=logs/' + argv[2] + '.log')
argv.append('-s')
argv.append('睡眠时间为%s='%argv[3])
argv.append('-s')
argv.append('LOG_FORMAT=%(asctime)s [' + argv[2] + '][%(name)s] %(levelname)s: %(message)s')
print(argv)
sys.exit(execute(argv))
你说的是这?
PulpFunction
2018-12-24 13:53:58 +08:00
你搜搜 scrapyd+scrapy+flask
我是搭建一个接口,flask 调用 scrapyd,scrapyd 调用 scrapy
没有用到 3 楼这些东西
PulpFunction
2018-12-24 14:01:41 +08:00
flask 调用 scrapyd 时候也是 api
发送一串类似{'project': 'ppp', '参数 1': 0, '参数 2': '参数 3','参数 4':xx,'参数':nn}到 scrapyd
你可以用{'project': '*', 'sleep': 10}
用这个参数只需要在*spider 类__init__文件中写
def __init__(self, sleep=0, **kwargs):
这个函数体里面就可以用 sleep 了
大概就是这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520342

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX