На этом пути у меня есть паук-спайдер:
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
Сначала вам нужно вызвать chdir()
.
chdir("C:\\Users\\[USERNAME]\\test1\\test1\\spiders\\test.py");
echo shell_exec("scrapy runspider " . $additional);
Вы не можете запускать 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