Скрипт Scrapy, вызываемый через shell_exec, не работает

У меня есть паук-скрап на этом пути:

define("SPIDER_PATH", "C:\\Users\\[USERNAME]\\test1\\test1\\spiders\\test.py");

Сейчас я пытаюсь запустить скрипт через php:

if (is_numeric(filter_input(INPUT_POST, "reload"))) {
$additional = " -a check=" . filter_input(INPUT_POST, "reload");

}
echo shell_exec("scrapy runspider " . SPIDER_PATH . $additional);

Но ничего не происходит, и ничего не отражается от shell_exec.

Я проверил это на локальной машине, используя wamp.

Может кто-нибудь мне помочь?

Переменные окружения установлены правильно (по крайней мере, я могу вызвать точно такую ​​же команду через Windows cmd.exe

0

Решение

Вы не можете запустить scrapy через php так, как вы это делаете.

Что вам нужно, это скрапид.

https://scrapyd.readthedocs.org/en/latest/install.html

После того, как вы установите его. Пройди свой скрап проект dir:
C: \ Users \ [USERNAME] \ test1 \

Создайте / отредактируйте файл scrapy.cfg с содержанием:

[settings]
default = crawler.settings

[deploy]
url = http://localhost:6800/
project = crawler

запустить команду

scrapyd-deploy -l

который перечислит ваши доступные цели:

default              http://localhost:6800/

Теперь вам нужно развернуть проект:

scrapyd-deploy default -p test1

Подробнее о развертывании проекта:
https://scrapyd.readthedocs.org/en/latest/deploy.html

Когда проект развернут, вы можете запланировать паука с помощью запроса curl:

curl http://localhost:6800/schedule.json -d project=test1 -d spider=test

Подробнее о scrapyd API:
https://scrapyd.readthedocs.org/en/latest/api.html

1

Другие решения

Вам нужно позвонить chdir() первый.

chdir("C:\\Users\\[USERNAME]\\test1\\test1\\spiders\\test.py");
echo shell_exec("scrapy runspider " . $additional);
1

По вопросам рекламы [email protected]