@vafarulez
Верстаю сайты

Какой есть эмулятор браузера на nodejs?

Привет. Понадобилось на одном сервере друга забрать данные с сайта. 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 скудная очень.
  • Вопрос задан
  • 6111 просмотров
Пригласить эксперта
Ответы на вопрос 2
kirill89
@kirill89
С phantomjs разбираться действительно сложно из за документации, могу посоветовать использовать обертку на nodejs - например navit. Она предназначена в первую для тестирования, но вам должна подойти.
Ответ написан
Комментировать
keksmen
@keksmen
Just a programmer
С phantomjs не сталкивался, но знаю, что задача спокойно решается при помощи electron'а. Он достаточно хорошо задокументирован, однако не факт, что он заработает на сервере, где нет графической оболочки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы