Как на Phantom.JS получить список открытых окон?
Как на Phantom.JS получить список открытых окон и переключаться между ними? Или он принципиально работает с одной страницей?
Как на Phantom.JS получить список открытых окон и переключаться между ними? Или он принципиально работает с одной страницей?
Сабж
Есть прокси сервер на 3proxy. Как узнать сколько запросов в секунду на него в среднем поступает?
Нужно забирать с одного сайта данные, которые подгружаются на него через вебсокеты. Как и чем это сделать?
Желательно на node.js, можно python
Сайт с автоподгрузкой данных с мегатонной кода.
Как узнать какая функция вызывается при прокрутке для показа новых данных?
Как-то через инструменты разработчика можно? Или еще как?
Нужны тысячи ip адресов. Где брать?
У ВПН столько не бывает, либо за совсем космические деньги.
Прокси есть, но даже платные побанены.
Где искать незабаненые и за вменяемые деньги?
Вменяемые - не 100 руб., 2-3 сотни зелени/мес. - вменяемо, но за анлимный траффик, т.к. будет овер 150 ГБ/сутки скорее всего
Ищу максимально дешевые VPS
желательно разных контор и из разных стран, исключая РФ
Нужны вообще с минимальной конфигурацией, но с возможностью взять несколько ip - тупо гнать через них траффик (парсеры), соответственно траффик желательно безлимит или много.
Что посоветуете?
Ищу хороший консольный чекер прокси
Требования:
1) Поддержка HTTP(S) и SOCKS(4/5)
2) Возможность проверять доступ к конкретному сайту (т.е. задать url и регексп с содержимым, которое обязательно должно быть на странице
Неплохо было бы также чтобы могло тестить скорость и пинг, но не обязательно
Использую не фантом как в тегах, а слимер, т.к. видно что происходит.
Мне надо, чтобы значение возвращалось после всех ScrollTo, но оно возвращается намного раньше. Как правильно сделать?
page.evaluate(function() {
function unique(arr) {
var obj = {};
for(var i=0; i<arr.length; i++) {
var str = arr[i];
obj[str] = true;
}
return Object.keys(obj);
}
function getLinks(){
var links = new Array();
var collect = $('div.coefficient__more > a');
collect.each(function(index, element){
links.push($(element).attr('href'))
});
return links;
}
var hrefs = new Array();
var num;
var dl = 500;
$(window).queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).scrollTo("10%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("20%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("30%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("40%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("50%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("60%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("70%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("80%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("90%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
}).delay(dl).scrollTo("100%").queue(function() {
hrefs = hrefs.concat(getLinks());
$(this).dequeue();
});
return unique(hrefs);
}
Дано:
На сайте строчками информация. Все изначально подгружается хитрожопомегатонными скриптами, поэтому напрямую не вышло. Использую Phantom.JS
Но! Даже с ним не все парсится. Дело в том, что все что сильно ниже экрана как бы удаляется, и видно как оно появляется после прокрутки.
Как такое парсить?
Вот:
*/2 * * * * /usr/bin/python3 /root/vpn_v.py > /home/log.txtПочему так может быть?
сам скрипт http://pastebin.com/NzpnE1sj
уже запускается
Вот дано рабочее впн-соединение. Нужно его «повесить» - не завершить, а чтобы tun0 остался в списке интерфейсов, но при попытке через него подключиться ничего не выходило. Нужно для тестирования скрипта.
Вот такой вопрос: нужно перенести docker контейнеры на другой сервер. Работал только с lxc и то немного. Где искать его конфиги? Вот установлю я docker, а в кроне прописано docker restart container1. Ведь где-то прописан путь к контейнеру, раз он вызывается без пути? Вот вопрос где?
Собственно я тут подумал, и решил что мне нужно. Но как реализовать не понимаю пока.
Дано:
1) Парсеры парсят сайты
2) Некоторые из них на phantom.js , соответственно указать интерфейс к каждому запросу, через который ходить не представляется возможным
3) Соответственно нужен прокси, чтобы такие парсеры пускать через этот прокси, а уже прокси рандомно раскидывал запросы по разным tun-интерфейсам
4) tun-интерфейсы постоянны количеством, но их ip регулярно меняются (всего 200+ ip, работает одновременно 15)
5) Как реализовать и на чем?
Собственно в дополнение к этому вопросу Как пустить headless браузер через определенный сетевой интерфейс?
Насколько я понял, пустить headless браузер через определенный tun-интерфейс не представляется возможным, зато возможно создать несколько прокси, каждый из которых будет ходить через один из этих интерфейсов и собственно браузер уже пускать через прокси. Подскажите, пожалуйста куда копать. С настройкой прокси ни разу еще не имел дела
Собственно надо парсить сложный сайт. Поэтому решил использовать headless браузер. Phantom.js. Собственно управлять всем этим надо из Node.js, поэтому тут еще и Casper.js + Spooky.js
Но парсить надо с разных сетевых интерфейсов (tunX - OpenVPN)
Когда был просто request, там был параметр localAddress, в котором прописывался ip адрес интерфейса и всё.
Но как заставить ходить не напрямую Phantom.js? Ну или Firefox через Slimer.js (Casper.js и его поддерживает)
Собственно вот пример с сайта. Работает. Но как тут указать сетевой интерфейс?
var Spooky = require('spooky');
var spooky = new Spooky({
child: {
transport: 'http'
},
casper: {
logLevel: 'debug',
verbose: true
}
}, function (err) {
if (err) {
e = new Error('Failed to initialize SpookyJS');
e.details = err;
throw e;
}
spooky.start(
'http://en.wikipedia.org/wiki/Spooky_the_Tuff_Little_Ghost');
spooky.then(function () {
this.emit('hello', 'Hello, from ' + this.evaluate(function () {
return document.title;
}));
});
spooky.run();
});
spooky.on('error', function (e, stack) {
console.error(e);
if (stack) {
console.log(stack);
}
});
/*
// Uncomment this block to see all of the things Casper has to say.
// There are a lot.
// He has opinions.
spooky.on('console', function (line) {
console.log(line);
});
*/
spooky.on('hello', function (greeting) {
console.log(greeting);
});
spooky.on('log', function (log) {
if (log.space === 'remote') {
console.log(log.message.replace(/ \- .*/, ''));
}
});
async.map(results, function(url, callback){
worker.aspawn(['node', 'script.js', url],
function (err, stdout, stderr) {
if (err) {
console.log('error: %s', err.message);
console.error(stderr);
} else {
console.log(stdout);
}
});
}, function(err, results){
// console.log(results);
});
пробовал с обычным exec и spawn - одно и тоже - вместо запуска нескольких экземпляров script.js с разными url в качестве параметров - запускается этот скрипт со всеми параметрами через запятую и все падает
Собственно сабж
Для Ubuntu полно. А для Lubuntu не вижу
Lubuntu 16.04 x64
Есть строка такого вида:
[10035,1,[[1,[[1,11871,[2065165,'\u0412\u0435\u0441\u0442\u0435\u0440\u043D \u0421\u0438\u0434\u043D\u0435\u0439 \u0423\u043E\u043D\u0434\u0435\u0440\u0435\u0440\u0441','\u0421\u0438\u0434\u043D\u0435\u0439','1.009-E005217021802',6,'02/18/2017 16:50','',1,0,1,2,{126:[1,1]}],[3,1,41,45,0,0,{126:[1,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],310:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],309:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],308:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],307:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],306:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0]},,{1:45,2:45,3:15,4:15},0],[[17,17,[]],[33571008,[1,0,1,1,12000,-0.50,2059220],[1.95,1.97]],[33571009,[1,0,1,1,6000,-0.25,2059220],[2.33,1.67]],[33571014,[5,0,5,1,3000,0.00,2059220],[1.96,2.98,4.30]],[33571022,[1,0,1,1,4000,-0.75,2059220],[1.68,2.31]]],2],[1,19097,[2070863,'Heidelberg United','Avondale FC','1.030-E007717021802',10,'02/18/2017 16:30','',0,1,1,,{}],[1,0,0,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33665916,[1,0,1,1,3000,0.50,2071489],[2.07,1.83]],[33665920,[5,0,5,1,500,0.00,2071489],[4.70,2.91,1.83]]],1],[1,7256,[2073815,'Souths United','Rochedale Rovers','1.032-E008717021805',10,'02/18/2017 17:00','',0,0,1,0,{}],[1,1,31,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[0,0,[[1,0,1],[5,0,5]]]],3],[1,7256,[2073813,'Ipswich Knights','Albany Creek','1.032-E008717021803',10,'02/18/2017 17:00','',1,0,1,0,{}],[1,1,36,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[6,6,[]],[33717500,[1,0,1,1,2000,-0.25,2078167],[1.90,1.94]],[33717504,[5,0,5,1,500,0.00,2078167],[1.66,3.60,4.20]]],2],[1,7256,[2073814,'Grange Thistle','Mitchelton FC','1.032-E008717021804',10,'02/18/2017 17:00','',1,0,1,0,{}],[1,1,34,45,1,0,{},,{1:45,2:45,3:15,4:15},0],[[6,6,[]],[33717508,[1,0,1,1,2000,-1.00,2078168],[2.04,1.80]],[33717512,[5,0,5,1,500,0.00,2078168],[2.62,2.99,2.48]]],2],[1,7256,[2073812,'Logan Lightning (n)','Eastern Suburbs FC','1.032-E008717021802',10,'02/18/2017 16:00','',1,1,1,0,{}],[1,2,35,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[4,4,[]],[33717492,[1,0,1,1,1000,-0.25,2078166],[1.45,2.63]],[33717496,[5,0,5,1,500,0.00,2078166],[6.00,1.51,3.45]],[33717498,[1,0,1,1,2000,0.00,2078166],[2.66,1.44]]],3],[1,24374,[2071853,'Adelaide United U21','Adelaide Olympic','1.033-E009217021804',10,'02/18/2017 16:30','',0,2,1,0,{}],[1,2,5,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33686507,[1,0,1,1,2000,-0.25,2073198],[1.92,1.92]],[33686511,[5,0,5,1,500,0.00,2073198],[23.00,6.00,1.099]]],2],[1,44064,[2066059,'Bali United Pusam','PS Barito Putera','1.089-E072417021801',6,'02/18/2017 16:00','',1,1,0,0,{}],[1,2,33,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33593355,[1,0,1,1,2000,0.25,2061253],[2.04,1.80]],[33593358,[5,0,5,1,500,0.00,2061253],[2.57,1.93,4.70]]],1],[1,228,[2065819,'GrIFK Kauniainen (n)','HJK Helsinki','1.026-E022017021801',10,'02/18/2017 17:00','',0,1,1,0,{}],[1,1,37,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[6,6,[]],[33587489,[1,0,1,1,2000,-1.50,2060809],[2.13,1.78]],[33587493,[5,0,5,1,500,0.00,2060809],[65.00,8.50,1.035]]],2],[1,31224,[2072986,'Kitchee','Tai Po','1.082-E068317021802',10,'02/18/2017 17:30','',0,0,1,0,{}],[1,1,9,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[4,4,[]],[33704744,[1,0,1,1,500,0.75,2076378],[1.71,2.05]]],1]],[],[]]]]
undefined:1
[10035,1,[[1,[[1,11871,[2065165,'\u0412\u0435\u0441\u0442\u0435\u0440\u043D \u0421\u0438\u0434\u043D\u0435\u0439 \u0423\u043E\u043D\u0434\u0435\u0440\u0435\u0440\u0441','\u0421\u0438\u0434\u043D\u0435\u0439','1.009-E005217021802',6,'02/18/2017 16:50','',1,0,1,2,{126:[1,1]}],[3,1,41,45,0,0,{126:[1,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],310:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],309:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],308:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],307:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0],306:[0,1,41,45,0,0,,,{1:45,2:45,3:15,4:15},0]},,{1:45,2:45,3:15,4:15},0],[[17,17,[]],[33571008,[1,0,1,1,12000,-0.50,2059220],[1.95,1.97]],[33571009,[1,0,1,1,6000,-0.25,2059220],[2.33,1.67]],[33571014,[5,0,5,1,3000,0.00,2059220],[1.96,2.98,4.30]],[33571022,[1,0,1,1,4000,-0.75,2059220],[1.68,2.31]]],2],[1,19097,[2070863,'Heidelberg United','Avondale FC','1.030-E007717021802',10,'02/18/2017 16:30','',0,1,1,,{}],[1,0,0,45,0,0,{},,{1:45,2:45,3:15,4:15},0],[[3,3,[]],[33665916,[1,0,1,1,3000,
SyntaxError: Unexpected token ' in JSON at position 32
at JSON.parse (<anonymous>)
at /home/slava/parsers/sbobet.js:28:13
at done (/home/slava/parsers/node_modules/needle/lib/needle.js:398:14)
at PassThrough.<anonymous> (/home/slava/parsers/node_modules/needle/lib/needle.js:637:11)
at emitNone (events.js:91:20)
at PassThrough.emit (events.js:186:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
Второй день не могу врубиться. Что не так?
На pastebin: http://pastebin.com/MLew8QeR
Какие есть эмуляторы Android для Linux?
Желательно бесплатные, свободные не обязательно
Genymotion платный
SDK?
Shashlik у меня что-то нормально не заработал
Еще что-то есть?
Ubuntu 16.04 64bit
| ← назад | следующие → |