в основном, я пытаюсь очистить веб-страницы с помощью 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 для выполнения только необходимых запросов.