如何在Windows 7上使用NodeJS / PhantomJS / CasperJS

时间:2012-09-29 05:44:16

标签: javascript jquery node.js phantomjs casperjs

我需要抓一个有AJAX和SESSIONS的网站表格(即时)。我做了很多研究,我遇到了几个可能的解决方案,一个是Python :: Mechanize。我不知道PHP(根据我的理解)单独的python和cURL无法处理AJAX或提交表单。

我发现我认为可能的堆栈可以让我优雅:)。问题是我根本不知道如何使用这些包。

  1. 我下载并安装了NODEjs,我可以从cmd调用它。 (大)

  2. 我下载并安装了PhantomJS(不确定如何设置PATH以便它是动态的,因此我必须在CMD中手动cdDIR才能获得它加载)如何在Windows 7中进行设置?不知道在哪里指出路径。

  3. 下载CasperJS - 放入DIR

  4. 所以在phantomjs上,我能够运行一个测试文件,在CMD提示符中回显'hello world'。现在我在这里不知道如何继续。 - 最好我需要这个从我的网络服务器运行(即时) - 所以它需要实现到我的网页。截至目前,我想从CMD运行它并将其转到页面,提交表单,刮取结果,然后将其写入文件。

    有人可以解释一下如何实现这一目标的工作流程吗?

    CasperJS - >显示此表单示例。我想用我的变量实现,运行脚本并保存结果。

    casper.start('http://some.tld/contact.form', function() {
        this.fill('form#contact-form', {
            'subject':    'I am watching you',
            'content':    'So be careful.',
            'civility':   'Mr',
            'name':       'Chuck Norris',
            'email':      'chuck@norris.com',
            'cc':         true,
            'attachment': '/Users/chuck/roundhousekick.doc'
        }, true);
    });
    
    casper.then(function() {
        this.evaluateOrDie(function() {
            return /message sent/.test(document.body.innerText);
        }, 'sending message failed');
    });
    
    casper.run(function() {
        this.echo('message sent').exit();
    });
    

1 个答案:

答案 0 :(得分:2)

安装PhantomJS后,请执行下一步:

  1. 在桌面上,右键单击“我的电脑”,然后单击“属性”。
  2. 单击左列中的“高级系统设置”链接。
  3. 在“系统属性”窗口中,单击“环境变量”按钮。
  4. 找到PATH变量并单击编辑
  5. 在变量值的末尾添加PhantomJS路径(不要忘记;在它之前)
  6. 现在您可以使用CMD中的phantomjs。 例如:phantomjs c:\ mywebsite \ with \ ajax \ dopescript.js

    完成这些步骤后,下载CasperJS并将其放入PhantomJS文件夹中

    Ex.: c:\phantomjs\casperjs

    执行CasperJS的PATH变量的前面步骤(最后加上\ bin)

    Ex.: c:\phantomjs\casperjs\bin

    从CMD尝试casperjs。

    如果不能正常工作,请转到casperjs文件夹中的batchbin目录和午餐casperjs.bat

    现在尝试从此文件夹中调用CasperJs。 (适合我)

    所以现在你应该有PhantomJS + CasperJS。

    关于保存结果:

    将此var fs = require('fs');放在脚本的开头并调用

      fs.write('result.html', myData);其中myData是您需要保存的数据。

    以下是有关FS的更多信息: PhantomJS File System