Привет. Понадобилось на одном сервере друга забрать данные с сайта. Api нет. Нужно сначало залогиниться на сайте, потом уже в залогиненном состояние перейти на другую страницу и забрать данные. На сервер используется защита от ботов. В скрытые инпут поля удаляет js скрипт. Если поля не удалены и форма отправляется то сервак думает что это бот. Так что нужно исполнение js кода.
Копал в сторону phantomjs.
var url = 'http://test.ru/user/login',
page = new WebPage();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
page.open(url, function(status) {
if (status !== 'success')
{
console.log('Unable to access network');
phantom.exit();
return;
}
else
{
page.viewportSize = {
width: 1024,
height: 1024
};
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js", function() {
page.onLoadFinished = function(){
page.url = 'http://t118437.test.ru/admin/templates';
var title = page.evaluate(function(){
return document.title;
});
setTimeout(function(){
console.log('test', title);
page.render("nextPage.png");
}, 5000)
phantom.exit();
};
page.evaluate(function() {
login = 'test123@ya.ru';
pas = '123456';
$('#user_mail').val(login);
$('#user_pass').val(pas);
$(".push-bottom").click();
});
});
}
});
Вот этот код работает. Тоесть происходит вход в аккаунт и скрипт делает скриншот страницы аккаунта. Но мне еще после входа нужно перейти на другую страницу. Вот это я не смог сделать. Как на phantomjs реализовать навигацию по страницам. Документация phantomjs скудная очень.