【问题标题】:Scrapy Script called via shell_exec doesn't perform通过 shell_exec 调用的 Scrapy 脚本不执行
【发布时间】:2015-03-04 10:36:36
【问题描述】:

我在这条路上有一只爬虫:

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 调用完全相同的命令

【问题讨论】:

    标签: php python shell scrapy


    【解决方案1】:

    你不能像你那样通过 php 运行 scrapy。

    你需要的是scrapyd。

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

    安装后。去你的scrapy项目目录: C:\Users\[用户名]\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

    【讨论】:

      【解决方案2】:

      您需要先致电chdir()

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

      【讨论】:

        猜你喜欢
        • 2016-07-28
        • 1970-01-01
        • 2010-11-26
        • 2014-06-11
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多