Top.Mail.Ru
Ответы
Аватар пользователя
13 лет назад
от
Изменено

Как с помощью PHP парсить ДИНАМИЧЕСКИЕ страницы с ajax? (более подробное описание читаем внутри)

Появилась задача: нужно на странице с подгружаемым содержимым вытащить некоторые элементы. Статичные элементы, которые есть на странице изначально я смог вытащить без проблем. Но вот те элементы, которые подгружаются потом, по мере прокрутки страницы - их я вытащить не могу. Подскажите как это сделать?

На ум приходит только:
- Наверное можно как-то имитировать прокрутку страницы?
- Должен быть какой-то способ обойти эту динамику, чтобы страница выдавалась без подгрузки?

Дополнен

И все-таки, что посоветуете мне сделать в моем случае? Желательно, вариант по-проще (:

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Просветленный
13лет

никак.
только разбирать страницу, смотреть сами ajax запросы и их эмулировать в скрипте.
к примеру при таком-то действии (загрузке страницы например) вызывается на js (ajax)
такой-то скрипт по такому-то url с такими-то параметрами - вот формируешь запрос
и вызываешь этот скрипт.

либо пользоваться эмуляторами, к примеру Human Emulator - но он соответственно платный.
под него тоже можно писать скрипты автоматизации на пхп.

а на чистом php сделать исполнение js (как в браузере) не возможно.

>И все-таки, что посоветуете мне сделать в моем случае? Желательно, вариант по-проще
я вроде все подробно написал - разбирать страницу и эмулировать в своем скрипте запросы, отправляемые js

Аватар пользователя
13лет

если правильно понял, надо выделить содержимое страницы с подгружаемым позже содержимым: нажимаем и удерживая Shift, выделяем стрелочкой левой кнопки мыши страницу, ведя стрелочку до конца страницы и ждём, не отпуская кнопки, когда загрузится всё нужное, что ниже есть, но не отобразилось, затем приподнимаем, не отпуская кнопки, стрелочку на место куда нужно (должно всё, что выше выделиться) , копируем и вставляем куда надо (единственное, придётся вручную удалять лишнюю информацию, находящуюся на странице)

Аватар пользователя
Гуру
13лет

тебе нужно просто посмотреть, какой ajax запрос используется для динамической подгрузки содаржимого и вызвать его после того, как распарсил основную страницу. Скорее всего запрос будет возвращать какие-нибудь json данные, с которыми легко работать в PHP. Посмотреть, что за запросы уходят, можно с помощью FireBug. Удачи.

Аватар пользователя
Мастер
13лет

Если общий случай, то нужно прицепить HTML-движок. Задача в целом сложная и комплексная, не для веб-программиста. С частными случаями все ясно и так, берешь FireBug, SockSpy или что-то подобное, смотришь, какие обращения делает страница и ответы на них, дальше по ситуации.