Библиотека PHP для загрузки HTML полностью загруженной веб-страницы, включая части, добавленные AJAX.

Мне нужен какой-то фрагмент PHP-скрипта (или функции), который может загружать полную веб-страницу, включая части и изображения AJAX, я имею в виду, что, указав URL-адрес, он возвращает мне полный HTML.

До сих пор я использовал «simple_html_dom» и некоторые функции на основе Curl, но ни одна из них не работает для частей AJAX.

Чтобы это работало, библиотека, вероятно, должна имитировать браузер с помощью JavaScript, загрузить страницу и дождаться загрузки/преобразования всех элементов, прежде чем принимать HTML.

Он должен быть бесплатным, в идеале с открытым исходным кодом.

Что вы имеете в виду can load a complete web page? cURL легко вернет вам весь HTML-контент. Если вы действительно хотите сделать идеальную копию с идеально работающими скриптами и css, самый простой способ — просто создать файл iframe.
Я имею в виду некоторый скрипт (или программу), который может имитировать браузер и отправлять запросы javascript, получать весь HTML-код, а затем возвращать весь собранный HTML.

Ответы (2)

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

Я заметил, что кто-то создал некоторые привязки PHP к Phantom API в пакете под названием PHP PhantomJS . Я не использовал его, потому что мне никогда не требовалась эта функциональность из PHP, но это, безусловно, путь, по которому я бы пошел вниз, если бы хотел использовать безголовый браузер в PHP.

Для этого я бы использовал Snoopy

Snoopy — это класс PHP, имитирующий веб-браузер. Например, он автоматизирует задачу извлечения содержимого веб-страницы и форм публикации.

Для начала я бы проверил это руководство , скажите, пожалуйста, сработает ли оно

Snnopy выглядит как 37 КБ красиво оформленного PHP-кода? Я только бегло взглянул, но, к сожалению, я почти уверен, что он не может запускать JavaScript.