我写了一个phantomjs脚本来废除胡佛。 以下是我的流程:
1:使用Nodejs API从数据库获取数据。
2:在我获取10行时,将这些行一次传递给网站,废弃它(问题就在这里。我想知道将Scrap的结果存储到数组中,然后将这些数据传回给用于在Azure中更新数据库的节点API。
现在我能够使用nodejs API从azure获取数据并且能够使用phantomjs进行废弃我唯一的问题是如何将结果存储在tempopary存储或数组中,然后可以将其传递给nodejs API以更新数据库在天蓝色。
答案 0 :(得分:4)
(我正在使用CasperJS - 它在PhantomJS上添加了一个图层,但我认为它也可以在PhantomJS中使用)
您可以让CasperJS使用您要存储的数据对您的后端进行AJAX调用。
让CasperJS为其访问的每个页面添加内容脚本:
var casper = require('casper').create({ clientScripts: ['content.js'] });
然后,在content.js中:
function sendToServer(theData){
var xhr2 = new XMLHttpRequest();
xhr2.open('POST', your_server_url, true);
xhr2.send(theData);
}
现在,您可以通过脚本中的sendToServer
致电casper.evaluate
。
请务必将此信息包含在您的接收应用中(或参见this module):
res.writeHead(200, {
'Access-Control-Allow-Origin': '*'
});
否则你的ajax会失败。您可能还需要添加返回CORS标头的OPTIONS路由。另一个解决方案是使用命令行开关禁用PhantomJS上的跨源检查。