我正在尝试保存我尝试过的scrapy crawl 命令的输出
scrapy crawl someSpider -o some.json -t json >> some.text
但它不起作用......有人可以告诉我如何将输出保存到文本文件......我的意思是打印的日志和信息刮擦...
7 回答
您可以将这些行添加到您的settings.py
:
LOG_STDOUT = True
LOG_FILE = '/tmp/scrapy_output.txt'
然后正常开始爬行:
scrapy crawl someSpider
您也需要重定向 stderr 。您只重定向标准输出。您可以像这样重定向它:
scrapy crawl someSpider -o some.json -t json 2> some.text
关键是数字 2,它“选择”stderr 作为重定向源。
如果您想将 stderr 和 stdout 都重定向到一个文件中,您可以使用:
scrapy crawl someSpider -o some.json -t json &> some.text
有关输出重定向的更多信息:http: //tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html
对于所有scrapy
命令,您可以添加--logfile NAME_OF_FILE
日志到文件,例如
scrapy crawl someSpider -o some.json --logfile some.text
还有另外两个有用的命令行选项可用于日志记录:
-L
或--loglevel
控制日志记录级别,例如-L INFO
(默认为DEBUG
)--nolog
完全禁用日志记录
这些命令记录在这里。
如果您想从 runspider 命令获取输出。
scrapy runspider scraper.py -o some.json -t json 2> some.text
这也有效。
你可以使用nohup
:
nohup scrapy crawl someSpider &
日志将存储在 nohup.out
您可以保存为日志文件:
scrapy crawl someSpider -s LOG_FILE=fileName.log -L <loglevel>
loglevel可以是 、 、 和 之间CRITICAL
的ERROR
一个,WARNING
或者表示没有日志。欲了解更多信息,请阅读Doc。INFO
DEBUG
--nolog
scrapy crawl someSpider --logfile some.text
这将完全符合您的要求,将您在屏幕上看到的命令的输出保存到文本文件中。