Inviseble_Demon
Мой дом здесь!
- Регистрация
- 11 Дек 2008
- Сообщения
- 478
- Реакции
- 377
- Автор темы
- #1
Всем доброго времени суток.
Итак имеем задачу:
Получить HTML после обработки JavaScript`ом при этом имеем сервер *nux и возможность ставить софт туда.
Решаем задачу.
Для просмотра ссылки Войдиили Зарегистрируйся
Этого достаточно как считает почти весь интернет (( Но так как тема создавалось с надеждой получить примерно то что представляет в итоге этот пост то распишем это поподробнее.
Все после запроса мы имеем в $page конечный вариант страницы - парсем радуемся ))
Единственная ссылка которую помню и которая мне помогла.
Для просмотра ссылки Войдиили Зарегистрируйся
Всем спасибо за внимание проявленное к данному вопросу, вопрос решен - тему можно закрывать.
Надеюсь я пояснил хоть как то понятно и вам не потребуется как мне около 10 часов на решение данной проблемы Правда я куда попало лез и тратил на это время...
PS. Софт довольно мощный без проблем можно сделать из него аналог XHE непонятно только нахер они сразу на нем не делали... Работало бы везде ))
Итак имеем задачу:
Получить HTML после обработки JavaScript`ом при этом имеем сервер *nux и возможность ставить софт туда.
Решаем задачу.
Для просмотра ссылки Войди
Этого достаточно как считает почти весь интернет (( Но так как тема создавалось с надеждой получить примерно то что представляет в итоге этот пост то распишем это поподробнее.
PhantomJS это все плюшки WebKit из консоли с управлением на JS и поддержкой различных стандартов и технологий: DOM, CSS, JSON, Canvas и SVG.
[/spoil]
Устанавливаем
apt-get instrall phantomjs
Создаем маленький скрипт который будет принимать параметр адреса и выдавать нам итог.
Так же лично мне понадобилось знать на какой я странице ибо слать нужно итог туда (редирект был после перехода по начальной ссылке).
Сохроняем его под именем get_end_html.js (к примеру)
Далее создаем "запрос" исходника
Тобиш передаем путь до файла cookie далее скрипт для нашего софта и адрес с которым все это работает.
В итоге мы получаем исходник после работы JS
Так как тема по PHP идем немного далее.
Функция для exec (обрезок из проекта...)
[spoil]
[/spoil]
Запрос страницы через phantomjs (вырезка с проекта)
[spoil]
[/spoil]
Устанавливаем
apt-get instrall phantomjs
Создаем маленький скрипт который будет принимать параметр адреса и выдавать нам итог.
Так же лично мне понадобилось знать на какой я странице ибо слать нужно итог туда (редирект был после перехода по начальной ссылке).
Код:
var page = require('webpage').create();
page.open(phantom.args[0], function (status) {
var ua = page.evaluate(function () {
return location.href+'##############'+document.getElementsByTagName('html')[0].innerHTML
});
console.log(ua);
phantom.exit();
});
Сохроняем его под именем get_end_html.js (к примеру)
Далее создаем "запрос" исходника
Код:
phantomjs --cookies-file=cookie.txt get_end_html.js http://google.com/
В итоге мы получаем исходник после работы JS
Так как тема по PHP идем немного далее.
Функция для exec (обрезок из проекта...)
[spoil]
PHP:
function SetTask($cmd)
{
exec($cmd, $output, $if);
return array(
'output' => implode('<br>', $output),
'if' => $if
);
}
Запрос страницы через phantomjs (вырезка с проекта)
[spoil]
PHP:
$phantomjs = SetTask('
phantomjs --cookies-file=' . FCLASS . DS . 'curl' . DS . 'cookie' . DS . 'download_wb.txt ' .
FCLASS . DS . 'get_end_html.js ' .
$this->url
);
// $this->CurlInfo['url'] - это костылек ))
list($this->CurlInfo['url'], $page) = explode('##############', $phantomjs['output']);
Единственная ссылка которую помню и которая мне помогла.
Для просмотра ссылки Войди
Всем спасибо за внимание проявленное к данному вопросу, вопрос решен - тему можно закрывать.
Надеюсь я пояснил хоть как то понятно и вам не потребуется как мне около 10 часов на решение данной проблемы Правда я куда попало лез и тратил на это время...
PS. Софт довольно мощный без проблем можно сделать из него аналог XHE непонятно только нахер они сразу на нем не делали... Работало бы везде ))