我正在尝试保存我尝试过的scrapy crawl命令的输出
scrapy crawl someSpider -o some.json -t json >> some.text
但它没有用......有些人可以告诉我如何将输出保存到文本文件中......我的意思是scrapy打印的日志和信息......
答案 0 :(得分:18)
您可以将这些行添加到settings.py
:
LOG_STDOUT = True
LOG_FILE = '/tmp/scrapy_output.txt'
然后正常开始抓取:
scrapy crawl someSpider
答案 1 :(得分:13)
您还需要重定向stderr。您只重定向stdout。 你可以像这样重定向它:
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
答案 2 :(得分:0)
如果你想从runspider命令获得输出。
scrapy runspider scraper.py -o some.json -t json 2> some.text
这也有效。
答案 3 :(得分:0)
您可以使用nohup
:
nohup scrapy crawl someSpider &
日志将存储在nohup.out中
答案 4 :(得分:0)
对于所有scrapy
命令,您可以添加--logfile NAME_OF_FILE
以登录到文件,例如
scrapy crawl someSpider -o some.json --logfile some.text
还有另外两个有用的命令行记录选项:
-L
或--loglevel
来控制日志记录级别,例如-L INFO
(默认为DEBUG
)
--nolog
完全禁用日志记录
这些命令是documented here。
答案 5 :(得分:0)
您可以另存为日志文件:
scrapy crawl someSpider -s LOG_FILE=fileName.log -L <loglevel>
日志级别可以是CRITICAL
,ERROR
,WARNING
,INFO
和DEBUG
或--nolog
之间的一个没有日志。有关更多信息,请阅读Doc。
答案 6 :(得分:0)
scrapy crawl someSpider --logfile some.text
这将完全符合您的要求,将您在屏幕上看到的命令的输出保存到文本文件中。