Как получить весь html после обработки браузером?

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
OlegGraf
Сообщения: 76
Зарегистрирован: 04 ноя 2011, 01:01

Как получить весь html после обработки браузером?

Сообщение OlegGraf » 13 окт 2016, 18:53

Собственно вопрос, как получить весь html после обработки браузером?
$webpage->get_source() - выводит html до обработки браузером
$webpage->get_document_body(true); или $webpage->get_body(); только body

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Как получить весь html после обработки браузером?

Сообщение Support » 14 окт 2016, 11:23

loadwebpage http://humanemulator.net/objects/WEB/we ... b_page.php или php функция get_file_contentes
они получают страницы без браузера напрямую как будто они загрузились.

OlegGraf
Сообщения: 76
Зарегистрирован: 04 ноя 2011, 01:01

Re: Как получить весь html после обработки браузером?

Сообщение OlegGraf » 14 окт 2016, 13:52

Читайте вопрос внимательно, мне нужно получить полный html после обработки браузером, а не до. То есть со всем сгенегированным контентом через javascript. Но не только body, весь html


OlegGraf
Сообщения: 76
Зарегистрирован: 04 ноя 2011, 01:01

Re: Как получить весь html после обработки браузером?

Сообщение OlegGraf » 14 окт 2016, 22:21

Пробовал
$html->get_inner_html_by_number( 0 ); озвращает не все что есть в коде
Нужно как $webpage->get_source() но только после обработки браузером.

oleg88889
Сообщения: 128
Зарегистрирован: 19 мар 2013, 14:35

Re: Как получить весь html после обработки браузером?

Сообщение oleg88889 » 15 окт 2016, 21:35

Как то интересно стало, а можно пример страницы и file.txt с html-ом, тот с которым сравниваете, и метод получения вышеописанного, если можно.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Как получить весь html после обработки браузером?

Сообщение bigfozzy » 14 ноя 2016, 14:54

Возможно что для фреймов нужно получать свою часть хтмл ? get_body получает тока содержимое 0 фрейма. Для остальных можно использовать - http://humanemulator.net/objects/DOM/fr ... number.php

OlegGraf
Сообщения: 76
Зарегистрирован: 04 ноя 2011, 01:01

Re: Как получить весь html после обработки браузером?

Сообщение OlegGraf » 14 ноя 2016, 16:07

Проблема тянется еще с viewtopic.php?f=3&t=935 где я просил исправить проблемы с кодировкой. Прошло уже 3 года, а обещанные правки так и не были сделаны

Функция get_body полезна для получения html после обработки браузером, но отдает только код body.
Почему важно, потому что код возвращается уже в правильной кодировке после браузера.
А если нужно получить весь код, в том числе и <head> исходника в нормальной кодировке. Со всеми мета-тегами с кирилицей внутри?
Приходится извращаться типа:

Код: Выделить всё

$src_html= preg_replace( '#<head>.*?</head>#siu', '<head>'.$head->get_inner_html_by_number( 0 ).'</head>', $webpage->get_source() );
$body=$webpage->get_document_body(true);
$html = preg_replace( '#<body.*?</body>#siu', $body, $src_html );

То есть, получаем сырец html в битой кодировке и меняем <head> и <body> на результат после браузера. Таким образом имеем сырец, после обработки браузером. Но это костыли.
Как то интересно стало, а можно пример страницы и file.txt с html-ом
Конечно можно:

Код: Выделить всё

$html=$html->get_inner_html_by_number( 0 );
file_put_contents('e:\test.html', $html);

Посмотрите во вложении html и посмотрите на http://7sisters.ru/ сырец в браузере и увидите что данных не хватает до и после того кода который во вложении.
Вложения
test.zip
(20.76 КБ) 93 скачивания

Ответить