2016-05-02 2 views
0

Мне нужно запустить несколько скриптов python, некоторые из них - это проекты с scrapy.Запуск scrapy с использованием подпроцесса

Для запуска паука я пытаюсь это:

from subprocess import call 
import subprocess 

call(["scrapy",'crawl','my_spider','-o output_file.csv'],cwd='/home/luis/Schreibtisch/kukun/bbb_new_pro/scripts/2_Get_links) 

Интересно ли Возможное указать каталог файлов выходного, я попытался это:

call(["scrapy",'crawl','my_spider','-o folder_1/folder_2/output_file.csv'],cwd='project_folder') 

Но это только создает новые папки в в каталоге проекта я хочу, чтобы файл находился за пределами tht-папки.

Другое дело, могу ли я указать имя файла вывода в переменной? что-то вроде:

file_name = 'output file.csv' 

call(["scrapy",'crawl','my_spider','-o + file_name '],cwd='project_folder') 
+0

добавить '/' в начале вашей папки вывода – eLRuLL

+0

@eLRuLL я стараюсь, что тоже не работает. –

+0

Как @eLRull предлагает: 'call ([" scrapy ", 'crawl', 'my_spider', '- o /absolute/path/to/folder_1/folder_2/output_file.csv'], cwd = 'project_folder')' should Работа. В другом случае, может быть, 'call ([" scrapy ", 'crawl', 'my_spider', '- o% s'% file_name], cwd = 'project_folder')' именно то, что вы хотите. Обратите внимание, что запуск пауков из сценария, подобного этому, не рекомендуется; прочитайте раздел [docs об использовании CrawlProcess] (http://doc.scrapy.org/en/latest/topics/practices.html#run-scrapy-from-a-script) для этого –

ответ

1

Это работает для меня:

from subprocess import call 

name = "spider_name" 
call(["scrapy", "crawl", "{0}".format(name), "-o {0}.json".format(name)]) 
Смежные вопросы