Intereting Posts
Добавить класс в корневой элемент меню knp с помощью Twig Многократное наследование PHP с интерфейсами Что считается лучшей практикой для обработки переменных, хранящихся в файле конфигурации? Я получаю «Ваши требования не могут быть разрешены к устанавливаемому набору пакетов». Когда я запускаю обновление для композитора удалите новую строку при отправке запроса на сервер через Ajax Post с помощью JQuery Как синхронизировать две таблицы различных баз данных MySQL на одном компьютере? Технология PHP для запроса сервера обратной связи APNs Laravel 5.1 – сводная таблица между 3 столами обратный htmlspecialchars Magento multi-currency с несколькими магазинами автоматический прирост для simpleXML $ wpdb-> update или $ wpdb-> вставить результаты с косой чертой, добавляемой перед кавычками регулярное выражение, чтобы превращать URL-адреса в ссылки, не вступая в связь с существующими ссылками в тексте Процесс FastCGI неожиданно вышел из системы Установить изображение ширины в gridview yii2

php file_get_contents – после запуска javascript

в основном, я пытаюсь очистить веб-страницы с помощью php, но я хочу сделать это после того, как начальный javascript на странице выполняется – я хочу получить доступ к DOM после первоначальных запросов ajax и т. д. … есть ли способ сделать это?

Короткий ответ: нет.

Скремблирование сайта дает вам все, что сервер отвечает на HTTP-запрос, который вы делаете (из которого выводится «начальное» состояние дерева DOM, если это содержимое является HTML). Он не может принимать во внимание «текущее» состояние DOM после того, как он был изменен Javascript.

Я пересматриваю этот ответ, потому что сейчас есть несколько проектов, которые действительно хорошо справляются с этим:

  • PhantomJS является безголовой версией WebKit, и есть некоторые полезные обертки, такие как CasperJS .

  • Zombie.js, который является оболочкой над jsdom, написанной в Javascript (Node.js).

Вам необходимо написать код JavaScript для взаимодействия с обоими этими проектами. Мне до сих пор нравится Zombie.js, так как его легче настроить, и вы можете использовать любые модули Node.js / npm в своем коде.


Старый ответ:

Нет, нет никакого способа сделать это. Вам нужно будет эмулировать полную среду браузера внутри PHP. Я не знаю никого, кто делает такие скребки, кроме Google, и это далеко не полный.

Вместо этого вы должны использовать Firebug или другой инструмент веб-отладки, чтобы найти запрос (или последовательность запросов), который генерирует нужные вам данные. Затем используйте PHP для выполнения только необходимых запросов.