写完我的答案后,我重新阅读了您的问题,我发现您想要的与日志记录无关,而是关于不写入(默认).jl 提要(也许将标题更新为:“禁用scrapyd项目存储”)。要覆盖 scrapyd 的默认值,只需将 FEED_URI 设置为一个空字符串,如下所示:
$ curl http://localhost:6800/schedule.json -d project=tutorial -d spider=example -d setting=FEED_URI=
对于其他正在研究日志记录的人...让我们看一个例子。我们照常行事:
$ scrapy startproject tutorial
$ cd tutorial
$ scrapy genspider example example.com
然后编辑tutorial/spiders/example.py 以包含以下内容:
import scrapy
class TutorialItem(scrapy.Item):
name = scrapy.Field()
surname = scrapy.Field()
class ExampleSpider(scrapy.Spider):
name = "example"
start_urls = (
'http://www.example.com/',
)
def parse(self, response):
for i in xrange(100):
t = TutorialItem()
t['name'] = "foo"
t['surname'] = "bar %d" % i
yield t
注意跑的区别:
$ scrapy crawl example
# or
$ scrapy crawl example -L DEBUG
# or
$ scrapy crawl example -s LOG_LEVEL=DEBUG
和
$ scrapy crawl example -s LOG_LEVEL=INFO
# or
$ scrapy crawl example -L INFO
通过在您的蜘蛛上尝试此类组合,确认它不会打印超出调试的日志级别的项目信息。
现在是时候了,在你部署到 scrapyd 后,做同样的事情:
$ curl http://localhost:6800/schedule.json -d setting=LOG_LEVEL=INFO -d project=tutorial -d spider=example
在您运行时确认日志不包含项目:
请注意,如果您的项目仍以 INFO 级别打印,则可能意味着您的代码或某些管道正在打印它。您可以进一步提高日志级别和/或调查并找到打印它的代码并将其删除。