Как сделать вывод scrapy на стандартный вывод для чтения из Python - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть паук, которому я хочу вывести его результаты в стандартный вывод, чтобы он мог быть прочитан subprocess.check_output.Я не хочу выводить в файл в качестве посредника.

Я пытался добавить флаг '-o', 'stdout', но он не работает.

test = subprocess.check_output([
        'scrapy', 'runspider', 'spider.py',
        '-a', f"keywords={keywords}", '-a', f'domain={domain}', '-a', f'page={1}',
        '-s', 'USER_AGENT=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
    ])

1 Ответ

0 голосов
/ 08 февраля 2019

Попробуйте: Main .py

from subprocess import Popen, PIPE

command = ["scrapy runspider yourspider.py -a some additional commands"]
proc = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
proc.wait()
res = proc.communicate()
if proc.returncode:
    print(res[1])
print('result:', res[0])

Sub yourspider.py

import sys

# your code

print(something what you need to transfer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...