@uralmas

Как обновить документ в Phantomjs после совершения действия?

Я хочу собрать всю информацию из определённой категории при одном обращении к Phantomjs (пройтись по постраничной навигации, переключаясь по страницам). Дело в том, что сайт при нажатии на номер страницы/стрелочку изменяет целевой блок с информацией и URL страницы через ajax, т.е. перегрузки страницы не происходит. Phantomjs это не понимает и продолжает брать информацию с изначально загруженной страницы.
Вариант прогонять несколько раз page.open с изменением URL - не очень хороший, слишком долго будет загружать и нагрузка слишком большая выйдет.
Примерный код:
page.open(url, function (status) {
	var data = page.evaluate(function() {
		//Пока стрелка вправо активна, нажимаем на неё
		while ($('.arrow_right').hasClass('disabled') === false) {
			//Логика сбора данных
			
			//Нажимаем на стрелку
			var ev = document.createEvent("MouseEvents");
			ev.initEvent("click", true, true);
			
			document.querySelector('.arrow_right').dispatchEvent(ev);
				
			//Так подозреваю, что здесь что-то надо сделать
		}
		
		return dataOnPage;
	});
	
	console.log(data);

	phantom.exit();
});

Ссылка вида site.ru/category/page/1/
Подскажите, есть ли вообще такая возможность или нет?
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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