1

我需要抓取具有 AJAX 和 SESSIONS 的网站表单(即时)。我做了很多研究,发现了几种可能的解决方案,其中之一是 Python::Mechanize。我不知道python和cURL PHP(据我了解)无法处理AJAX或提交表单。

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

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

  2. 我下载并安装了 PhantomJS(不知道如何设置它PATH以便它是动态的,所以我必须手动cd在 CMD 中DIR加载它)如何在 Windows 7 中设置它?不知道在哪里指向路径。

  3. 下载的 CasperJS - 放入 DIR

因此,在 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();
});
4

1 回答 1

2

安装 PhantomJS 后,请执行以下操作:

  1. 在桌面上,右键单击我的电脑,然后单击属性。
  2. 单击左栏中的高级系统设置链接。
  3. 在系统属性窗口中单击环境变量按钮。
  4. 找到 PATH 变量并单击编辑
  5. 在变量值的末尾添加 PhantomJS 路径(不要忘记 ; 在它之前)

现在你可以在你的 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 文件系统

于 2014-02-26T04:49:05.660 回答