Работа с ajax и js в Си++
От: tt_andrey  
Дата: 08.10.09 15:02
Оценка:
Необходимо распарсить страничку с динамическим контентом, который подгружается через ajax или javascript.
С html никаких проблем нет, сразу ясна структура сайта и содержимого, а тут даже структура пока не ясна, даже не знаю, с какой стороны подойти. Подскажите библиотеку для Си++ для работы с ajax и js. И вообще в каком виде ajax обычно выдает контент, в виде html-кода, или браузер напрямую рендерит?
Re: Работа с ajax и js в Си++
От: StevenIvanov США  
Дата: 08.10.09 19:47
Оценка:
Здравствуйте, tt_andrey, Вы писали:

_>Необходимо распарсить страничку с динамическим контентом, который подгружается через ajax или javascript.

_>С html никаких проблем нет, сразу ясна структура сайта и содержимого, а тут даже структура пока не ясна, даже не знаю, с какой стороны подойти. Подскажите библиотеку для Си++ для работы с ajax и js. И вообще в каком виде ajax обычно выдает контент, в виде html-кода, или браузер напрямую рендерит?

Qt (QtWebKit )

ajax — это тот же яваскрипт. Его особенность в том, что он предназначен для динамической подгрузке контента без полной перезагрузки страницы. Ajax обычно создает ноды в документе динамически меняя дерево HTML документа.

Ну например, предположим у нас есть код html:

<div id="oneDiv"></div>


javascript, добавление нового элемента в div:
// получаем исходный элемент на страничке
var d = document.getElementById("oneDiv");

// создаем новый элемент
var otherElement = document.createElement("div");
... заполняем

// добавляем к существующему
d.appendChild(otherElement);


браузер сам перерендеривает перестроенный контент.
Re: Работа с ajax и js в Си++
От: Аноним  
Дата: 08.10.09 22:03
Оценка:
Можно поставить Fiddler и посмотреть, что выдает сайт в ответ на ajax-запросы. Я не доктор, но вроде там JSON, как замена XML-ю.
В ответе могут содержаться куски готового HTML, который запихивается javascript'ом в нужные места и таким образом апдейтится содержимое страницы, без её полной перезагрузки. Но бывает ответы чисто данными, которые потом обрабатываются javascript'ом — например запрос числа непрочитанных писем, или текущая температура
Re: Работа с ajax и js в Си++
От: Sergey Россия  
Дата: 09.10.09 16:44
Оценка:
Здравствуйте, tt_andrey, Вы писали:

_>Необходимо распарсить страничку с динамическим контентом, который подгружается через ajax или javascript.

_>С html никаких проблем нет, сразу ясна структура сайта и содержимого, а тут даже структура пока не ясна, даже не знаю, с какой стороны подойти. Подскажите библиотеку для Си++ для работы с ajax и js. И вообще в каком виде ajax обычно выдает контент, в виде html-кода, или браузер напрямую рендерит?

Если ajax-приложение написано например на GWT, то в браузер прилетает немного HTML, много javascript. Потом javascript начинает выполняться и делает много html. Потом в зависимости от действий пользователя приложение обменивается с сервером данными в том формате, в котором ему захочется — например, в сервер передает xml, а в клиент тащит json, куски html и картинки. Что из этого и с какаой целью вы собираетесь парсить — не очень понятно.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.