Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Парсинг JavaSript — как?

256
22 октября 2010 года
foxweb
1.0K / / 27.07.2005
Видимо, я очень сложные вопросы задаю, раз на них никто не отвечает :)

Дано: страница заказа, в которой куча полей вычисляется яваскриптом, причём, одна переменная достаётся через множество вложенных функций, размазанных по нескольким файлам. Распарсить это простым PHP разборщиком не представляется возможным. Сразу скажу, что парсим мы свои же данные, находящиеся на заокеанском сервере очень серьёзной и неприступной конторы. Это я к тому, что проще написать свой обработчик, чем просить XML у вендора :)

В связи с чем вопрос: есть ли на данный момент какие-то способы взять результирующий DOM после отработки JavaScript, примерно в том виде, что мы можем наблюдать в Firebug?

В моём распоряжении — веб-сервера с полным доступом под FreeBSD и Debian. Сам кожу под Ubuntu 10.10.

Как вариант: написать простой тулбар для фаерфокса — тогда как взять у фаерфокса результирующий DOM и сохранить его на энном удалённом хосте? Идеальный вариант — менеджер нажимает кнопку на тулбаре и дело сделано (в смысле, данные со страницы распарсились и ушли куда-то).

Картинка вот:
http://img203.imageshack.us/i/82117234.png/
244
22 октября 2010 года
UAS
2.0K / / 19.07.2006
Т.е., как я понял, JS отработал - надо средствами JS взять физически полученный html-код (или код на каком-либо участке страницы).
А обычный innerHTML после обработки JS для целевого тега разве не берет данные из обновленного DOM?

На крайний случай, если innerHTML не подходит, то остается только перебор дерева DOM.
Посчет расширений для мозиллы не знаю)
274
22 октября 2010 года
Lone Wolf
1.3K / / 26.11.2006
innerHTML-то берет, но как я понял Суть в том, что сайт в одном месте, а скрипт что забирать будет совершенно в другом месте.
256
23 октября 2010 года
foxweb
1.0K / / 27.07.2005
Цитата: Lone Wolf
innerHTML-то берет, но как я понял Суть в том, что сайт в одном месте, а скрипт что забирать будет совершенно в другом месте.



Именно. Потому способа вижу два: шаманство на клиенте — кнопка, user.js — и неполный черезжопный парсинг CURL-ом.

244
23 октября 2010 года
UAS
2.0K / / 19.07.2006
Вообще у Оперы, допустим, есть UserJS - то есть прикручивание пользовательских скриптов к странице. У Мозиллы тоже такое есть, только надо скачать дополнение специальное (название не помню, но вроде GreaseMonkey или типа того).

Далее уже можно просто создать JS-код, который все и решит, т.е. создать какое-то плавающее окошко, кнопочку и по нажатию кнопочки будет происходить забор innerHTML, парсинг и отправка (тем же AJAX). Ну это если не хочется возиться с написанием расширения. В целом, все то же самое можно и расширением написать, если охото тратить время на их изучение =)
13
23 октября 2010 года
RussianSpy
3.0K / / 04.07.2006
Думаю, что тут проще всего будет написание аддона к firefox.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог