【发布时间】:2013-12-15 22:46:13
【问题描述】:
我有一个 casper 脚本,可以提交表单并抓取响应。
我正在尝试设置一个“按需抓取”环境,在该环境中我可以使用 PhatomJS 网络服务器将表单值发布到 url,然后在我的 Casper 脚本中使用该数据来抓取页面,然后在网页上打印出响应.我不知道如何将 post 变量传递给 casper,然后将响应传递回 Phantom。
这是我的基本 Phantom/Casper 结构:
var server = require('webserver').create();
server.listen(8080, function(request, response) {
phantom.casperPath = '/source/casper/casperjs';
phantom.injectJs('/source/casper/casperjs/bin/bootstrap.js');
var address = request.post.address;
var casper = require('casper').create();
casper.start();
casper.then(function(){
address = // want to access global address here
result = begin(this, address); //Contians Casper scrape code
});
casper.run(function(){
this.exit();
});
response.statusCode = 200;
response.write(result); // from casper
response.close();
});
有什么方法可以在 casper 中从 phantom 访问变量,然后在我完成抓取后将数据传回?
【问题讨论】:
标签: scope web-scraping phantomjs casperjs