我需要抓一个有AJAX和SESSIONS的网站表格(即时)。我做了很多研究,我遇到了几个可能的解决方案,一个是Python :: Mechanize。我不知道PHP
(根据我的理解)单独的python和cURL无法处理AJAX或提交表单。
我发现我认为可能的堆栈可以让我优雅:)。问题是我根本不知道如何使用这些包。
我下载并安装了NODEjs,我可以从cmd调用它。 (大)
我下载并安装了PhantomJS(不确定如何设置PATH
以便它是动态的,因此我必须在CMD中手动cd
到DIR
才能获得它加载)如何在Windows 7中进行设置?不知道在哪里指出路径。
下载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();
});
答案 0 :(得分:2)
安装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 File System