Я новичок в PhantomJS. Я хочу загрузить страницу, очистить ее ссылки, а затем открыть каждый из них последовательно, по одному за раз, возможно даже с задержкой между каждым запросом. У меня возникли проблемы с тем, чтобы один из них запускался за другим, поэтому я подумал, что, возможно, я смогу использовать promises для решения этой проблемы, но я не думаю, что библиотеки Node работают с Phantom. Каждый пример, который я видел до сих пор, открывает одну страницу, а затем завершает работу.
Вот что у меня есть:
var page = require('webpage').create();
page.open('http://example.com/secretpage', function(status) {
console.log(status);
if(status !== 'success') {
console.log('Unable to access network');
} else {
var links = page.evaluate(function() {
var nodes = [];
var matches = document.querySelectorAll('.profile > a');
for(var i = 0; i < matches.length; ++i) {
nodes.push(matches[i].href);
}
return nodes;
});
links.forEach(function(link) {
console.log(link);
page.open(link, function(status) { // <---- tries opening every page at once
console.log(status);
var name = page.evaluate(function() {
return document.getElementById('username').innerHTML;
});
console.log(name);
page.render('profiles/'+name + '.png');
});
});
}
// phantom.exit();
});
Есть ли способ, по которому я могу последовательно открывать каждую ссылку?