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