2013-05-20 1 views
6

Sto cercando di salvare l'output del comando crawy scrapy che ho provato scrapy crawl someSpider -o some.json -t json >> some.text Ma non ha funzionato ... può un po 'di corpo dirmi come posso salvare l'output in un testo file .... Voglio dire i registri e le informazioni stampate da scrapy ...Come salvare Scrapy crawl Output di comando

risposta

9

È necessario reindirizzare anche lo stderr. Stai reindirizzando solo lo stdout. È possibile reindirizzare in qualche modo simile a questo:

scrapy crawl someSpider -o some.json -t json 2> some.text

La chiave è il numero 2, che "seleziona" stderr come sorgente per il reindirizzamento.

Se si desidera reindirizzare sia stderr e stdout in un unico file, è possibile utilizzare:

scrapy crawl someSpider -o some.json -t json &> some.text

Per ulteriori informazioni su reindirizzamento uscita: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

9

È possibile aggiungere queste righe al tuo settings.py:

LOG_STDOUT = True 
LOG_FILE = '/tmp/scrapy_output.txt' 

E poi iniziare la scansione normalmente:

scrapy crawl someSpider 
+0

Controllare [collegamento] (http://doc.scrapy.org/en/latest/topics/logging.html#logging-settings) per ulteriori impostazioni di registrazione. È anche possibile utilizzare il comando di scansione scrapy MyCrawler -s LOG_FILE =/var/log/crawler_mycrawler.log per modificare le impostazioni del crawler al volo. – pista329

0

se si desidera ottenere l'output dal comando runpider.

scrapy runspider scraper.py -o some.json -t json 2> some.text 

Funziona anche.