【问题标题】:Running a phantomjs program on shared hosting?在共享主机上运行 phantomjs 程序?
【发布时间】:2018-04-25 05:20:57
【问题描述】:

我已经在我的 Windows 8.1 电脑上安装了 phantomjs,并通过从命令提示符执行 js 文件进行了一些抓取。现在的问题是我如何在共享主机中运行 phantomjs 程序。我在网上寻找解决方案,我能找到的只是“我建议将 PhantomJS 二进制文件移动到你的主目录。在那里,你可以通过简单地指向文件来执行 PhantomJS:~/phantomjs -v。” .但我不明白“~/ phantomjs -v”是什么意思。我在哪里以及如何编写和运行此代码?这里要明确的是javascript文件

    var page = new WebPage()
    var fs = require('fs');

    page.onLoadFinished = function() {
    console.log("page load finished");
    page.render('export.png');
    fs.write('1.html', page.content, 'w');
    phantom.exit();
    };
    page.open("https://url", function() {
    page.evaluate(function() {
    });
    });

现在我如何在我的共享主机上运行这个文件(linux 64 位) 什么是“~/phantomjs -v”?

【问题讨论】:

    标签: javascript html web-scraping phantomjs shared-hosting


    【解决方案1】:

    ~ 是用户主目录的快捷方式。

    ~/phantomjs 就像说“位于我的主目录中的名为 phantomjs 的二进制文件”。

    要运行抓取,您需要启动 PhantomJS 并为其提供脚本名称。因此,在您的情况下,您可以将 PhantomJS 及其脚本放入您的主目录,然后从 shell 执行此命令:

    ~/phantomjs ~/script.js
    

    即“启动位于我的主目录中的 phantomjs 并让它运行也在我的主目录中的脚本”。

    如果你想从另一个脚本启动这个命令,比如 PHP,你可以在 PHP 中使用shell_exec 命令。

    但要警惕共享主机施加的限制——通常它们会限制执行时间和 CPU 消耗,在 PhantomJS 的情况下可能会相当高。我建议您使用 VPS 进行此类工作。

    【讨论】:

    • 这是正确的 php 代码吗:
    • 不,~/phantomj -v 只是打印 PhantomJS 的版本。正确方法:<?php $output = shell_exec("~/phantomjs ~test2.js"); ?>
    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多