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

0

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

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

Теги:
scrapy

2 ответа

1

Сначала вам нужно вызвать chdir().

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

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

Вам нужен скрапид.

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

После его установки. Пойдите в свой проект проекта scrapy: 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/ru/latest/deploy.html

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню