неправильно работал скрипт что выше с рекурсией. нужно было каждый раз вызывать var page=webpage.create() и закрывать, тогда без ошибок, вот так
var webpage=require("webpage");
var url=[];
url[0]="http://google.ru";
url[1]="http://microsoft.com";
url[2]="http://kselax.ru";
url[3]="http://cyberforum.ru";
url[4]="http://fl.ru";
url[5]="http://podrobnosti.ua";
var i=0;
pars();
function pars(){
var page=webpage.create();
page.settings.resourceTimeout=10000;
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0';
page.open(url[i],function(status){
if(status=="success"){
console.log("success"+i)
page.render("img"+i+".png");
page.close();
if(++i<url.length){pars();}
else{phantom.exit();}
}
else{
console.log("not success"+i)
page.close();
if(++i<url.length){pars();}
else{phantom.exit();}
}
});
};
А раньше по разному парсило, то 2 страницы, то 3, то урлы разные, а изображения одинаковые, вроде разобрался.
Вот с помощью switch типо отлова сообщений
var webpage=require('webpage');
var url=[];
url[0]="http://google.ru";
url[1]="http://microsoft.com";
url[2]="http://kselax.ru";
url[3]="http://cyberforum.ru";
url[4]="http://fl.ru";
url[5]="http://podrobnosti.ua";
var step=1;
var time=500;
var intervalId=setInterval(tick,time);
var i=0;
function tick(){
switch(step){
case 1:{
clearInterval(intervalId);//останавливаем счетчик
step=2;
console.log(url[i]);
var page=webpage.create();
page.settings.resourceTimeout=15000;//время ожидания 15 секунд
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0';
page.open(url[i],function(status){
if(status==="success"){
console.log("success"+i);
page.render("img"+i+".png");
page.close();
i++;
if(i<url.length) {step=1;}
else step=3;
}
else{
page.close();
console.log("not success"+i);
i++;
if(i<url.length) {step = 1;}
else step=3;
}
});
intervalId=setInterval(tick,time);
break;
}
case 2:{
console.log("TICK"+step);
break;
}
case 3:{
clearInterval(intervalId);
phantom.exit();
}
}
}
А от большие парсера походу не сильно удобно будет писать??? Наверно лучше делать с помощью switch чем на функции разбивать. А мб. еще есть какой то лучший способ?????
Еще интересно как phantom куки сохраняет, от если я сделаю авторизацию через phantom , потом его закрой и заново открою то я буду авторизован или нет??? Нада проверить. И изображения не ясно как их копировать. От есть урл на изображение
http://hsto.org/files/59f/f05/718/59...e54ea5e2b3.png и как его скопировать через phantom? просто загрузить и сохранить? Щас проверю.
Хочу попробовать большой парсер написать типо товары напарсить для интернет магазина, я такой на curl писал, а тут не ясно как делать.
И как прокси поменять не ясно