Навигация / очистка ссылок хэшбэга с помощью javascript (phantomjs)

Я пытаюсь загрузить HTML-код веб-сайта, который почти полностью создан с помощью JavaScript. Итак, мне нужно смоделировать доступ к браузеру, и я играл с PhantomJS . Проблема в том, что сайт использует URL-адреса хэшбэга, и я не могу заставить PhantomJS обработать хэшбэнг - он просто продолжает вызывать домашнюю страницу.

Сайт http://www.regulations.gov . По умолчанию вы попадете в #! Домой. Я пробовал использовать следующий код (из здесь ), чтобы попытаться обработать различные хэшбэги.

if (phantom.state.length === 0) {
     if (phantom.args.length === 0) {
        console.log('Usage: loadreg_1.js ');
        phantom.exit();
     }
     var address = 'http://www.regulations.gov/';
     console.log(address);
     phantom.state = Date.now().toString();
     phantom.open(address);

} else {
     var hash = phantom.args[0];
     document.location = hash;
     console.log(document.location.hash);
     var elapsed = Date.now() - new Date().setTime(phantom.state);
     if (phantom.loadStatus === 'success') {
             if (!first_time) {
                     var first_time = true;
                     if (!document.addEventListener) {
                             console.log('Not SUPPORTED!');
                     }
                     phantom.render('result.png');
                     var markup = document.documentElement.innerHTML;
                     console.log(markup);
                     phantom.exit();
             }
     } else {
             console.log('FAIL to load the address');
             phantom.exit();
     }
}

Этот код создает правильный хэшбанг (например, я могу установить хеш на '#! Contactus') но он не генерирует динамически какой-либо другой HTML - только страницу по умолчанию. Однако он правильно выводит, когда я вызываю document.location.hash .

Я также пытался установить начальный адрес для хэшбэга, но затем скрипт просто зависает и не работает » я ничего не делаю. Например, если я установил URL-адрес http://www.regulations.gov/#!searchResults;rpp=10;po=0 , скрипт просто зависнет после вывода адреса на терминал, и ничего никогда происходит.

9
задан Community 23 May 2017 в 02:08
поделиться