Я пытаюсь автоматизировать процесс загрузки многих скриншотов веб-страниц. Все скриншоты находятся на одной странице, но в зависимости от параметра строки запроса появляются разные данные.
мой код:
var page = require('webpage').create();
//How far the page extends in the image
page.viewportSize = { width: 1024, height: 2500 };
//size of the actual clip in the viewer (extra black space below image)
page.clipRect = { top: 0, left: 0, width: 1024, height: 4500 };
console.log("configured");
for(var i = 1; i < 5; i++){
page.open('http://testsite.com/view?id=' + i, function(status) {
console.log("Status: " + status);
if(status === "success") {
//save image of page as this
page.render(i + '.png');
}
phantom.exit();
});
}
Это работает без цикла for и просто устанавливает i в случайное число. У меня такое ощущение, что это связано с функцией обратного вызова и/или размещением phantom.exit(). Я пробовал много вариантов и не могу заставить его зацикливаться. Я также попытался добавить пользовательскую функцию синхронной задержки, но не уверен, где это может быть вызвано. Что было бы лучшим способом автоматизировать это... время и ресурсы не являются серьезной проблемой, так как это нужно просто запустить один раз, чтобы сбросить все изображения в файл.
urls
из моего ответа в повторяющемся вопросе. - person Artjom B.   schedule 08.08.2016