native С++ (или C#), Webbrowser & JavaScript
От: HAS Россия hasalex@mail.ru
Дата: 28.06.12 14:19
Оценка:
Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?

собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.
Re: native С++ (или C#), Webbrowser & JavaScript
От: boot  
Дата: 28.06.12 15:08
Оценка:
Здравствуйте, HAS, Вы писали:

HAS>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?


HAS>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.


Вы сперва напишите как собираетесь формировать правила (или политики) контроля. Опять же, нужна ли защита от подмены. Да и не плохо было бы отметить будет ли веб-приложение грузиться по частям, имеется в виду по ходу работы.
Реализовать Вашу задачу на серверной стороне может оказаться пустой тратой времени. Все зависит от цели. Какова цель контроля?
Жизнеспособность прямо пропорциональна простоте!
Re: native С++ (или C#), Webbrowser & JavaScript
От: LuciferSingapore Россия  
Дата: 28.06.12 15:13
Оценка:
Здравствуйте, HAS, Вы писали:

HAS>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?


HAS>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.


Попробуй взять firefox и Selenium2 (aka webdriver)
Re[2]: native С++ (или C#), Webbrowser & JavaScript
От: boot  
Дата: 28.06.12 15:19
Оценка:
ЗЫ: Кроме того, нужен еще контроль css, если слили будут использоваться. Стилями можно так же испортить жизнь как и JS-ом.
Жизнеспособность прямо пропорциональна простоте!
Re[2]: native С++ (или C#), Webbrowser & JavaScript
От: HAS Россия hasalex@mail.ru
Дата: 28.06.12 18:35
Оценка:
Здравствуйте, LuciferSingapore, Вы писали:

LS>Попробуй взять firefox и Selenium2 (aka webdriver)


так, и как это прикрутить к своему коду?
Re[2]: native С++ (или C#), Webbrowser & JavaScript
От: HAS Россия hasalex@mail.ru
Дата: 28.06.12 18:56
Оценка:
Здравствуйте, boot, Вы писали:

B>Здравствуйте, HAS, Вы писали:


HAS>>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?


HAS>>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.


B>Вы сперва напишите как собираетесь формировать правила (или политики) контроля. Опять же, нужна ли защита от подмены. Да и не плохо было бы отметить будет ли веб-приложение грузиться по частям, имеется в виду по ходу работы.

B>Реализовать Вашу задачу на серверной стороне может оказаться пустой тратой времени. Все зависит от цели. Какова цель контроля?

на серверной стороне ничего делать не нужно (пока во всяком случае, но тоже интересно узнать как). Все нужно делать программно у клиента
Re[3]: native С++ (или C#), Webbrowser & JavaScript
От: HAS Россия hasalex@mail.ru
Дата: 28.06.12 19:02
Оценка:
Здравствуйте, HAS, Вы писали:

HAS>Здравствуйте, boot, Вы писали:


B>>Здравствуйте, HAS, Вы писали:


HAS>>>Нужен корректный обработчик html+javascript, наподобие WebBrowser, но с возможностью полного контроля выполняемого js. Как это сделать через WebBrowser или какие бывают варианты?


HAS>>>собственно проблема в чем: качается страничка, но фактически она формируется js. Нужно отработать этот js и получить валидную готовую страницу со всеми объектами и куками. Как это возможно сделать? native или managed в принципе не важно.


B>>Вы сперва напишите как собираетесь формировать правила (или политики) контроля. Опять же, нужна ли защита от подмены. Да и не плохо было бы отметить будет ли веб-приложение грузиться по частям, имеется в виду по ходу работы.

B>>Реализовать Вашу задачу на серверной стороне может оказаться пустой тратой времени. Все зависит от цели. Какова цель контроля?

HAS>на серверной стороне ничего делать не нужно (пока во всяком случае, но тоже интересно узнать как). Все нужно делать программно у клиента


т.е. нужно использовать не имеющийся в системе браузер, а, например, ActiveX контрол TWebBrowser, TEmbeddedWebBrowser и аналогичные им, да так, чтобы это происходило невидимо для пользователя. Т.к. приложение грузит страничку, страничка отрабатывает (js), приложение как-то (как?) узнает что все скрипты отработали, забирает сформированный текст страницы и, анализируя ее, выдает уже пользователю то что он ожидает
Re[3]: native С++ (или C#), Webbrowser & JavaScript
От: LuciferSingapore Россия  
Дата: 29.06.12 02:37
Оценка:
Здравствуйте, HAS, Вы писали:

HAS>Здравствуйте, LuciferSingapore, Вы писали:


LS>>Попробуй взять firefox и Selenium2 (aka webdriver)


HAS>так, и как это прикрутить к своему коду?


если код на питоне (как было в моем случае), то нужно поставить модуль selenium, в нем есть интерфейс для взаимодействия с браузером
есть клиентская либа для Java

А вообще вот:
http://seleniumhq.org/about/platforms.html#programming-languages
Re[4]: native С++ (или C#), Webbrowser & JavaScript
От: FR  
Дата: 29.06.12 03:14
Оценка:
Здравствуйте, HAS, Вы писали:

HAS>т.е. нужно использовать не имеющийся в системе браузер, а, например, ActiveX контрол TWebBrowser, TEmbeddedWebBrowser и аналогичные им, да так, чтобы это происходило невидимо для пользователя. Т.к. приложение грузит страничку, страничка отрабатывает (js), приложение как-то (как?) узнает что все скрипты отработали, забирает сформированный текст страницы и, анализируя ее, выдает уже пользователю то что он ожидает


http://www.webkit.org/
Re[4]: native С++ (или C#), Webbrowser & JavaScript
От: boot  
Дата: 29.06.12 03:15
Оценка:
Здравствуйте, HAS, Вы писали:

HAS>>на серверной стороне ничего делать не нужно (пока во всяком случае, но тоже интересно узнать как). Все нужно делать программно у клиента


HAS>т.е. нужно использовать не имеющийся в системе браузер, а, например, ActiveX контрол TWebBrowser, TEmbeddedWebBrowser и аналогичные им, да так, чтобы это происходило невидимо для пользователя. Т.к. приложение грузит страничку, страничка отрабатывает (js), приложение как-то (как?) узнает что все скрипты отработали, забирает сформированный текст страницы и, анализируя ее, выдает уже пользователю то что он ожидает


Я почти понял. Вам нужно _расширение_браузера_, для ИЕ оно действительно будет на плюсах или шарпах. Для целей тестирования (определения, что ошибка есть) или дебага (определение где эта ошибка) в какой-то степени действительно подходит то, что написал LuciferSingapore.
А вот "как?", это вопрос к Вам. Допустим такой случай, в коде есть лишнее определение, пусть даже без присвоения, допустим оно перекрывает значение какой-то важной переменной, чем сильно портит жизнь (или меняет ее направление ) кому-то (опять же кому? пользователю?), выглядит все это просто:
a=3 // "выбранное направление"
...
[b]a[b] // что здесь контролировать? значение "a" становится undefined
...
go[a](); // в итоге "никуда не идем"

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

Возможно, Вам нужен контроль видимого содержимого страницы, на предмет наличия не цензурных слов, например. В чем проблема? Делаете стиль body invisible !important, анализируете DOM, делаете видимым или вовсе удаляете содержимое. Опять же это расширение браузера.
Жизнеспособность прямо пропорциональна простоте!
Re[5]: native С++ (или C#), Webbrowser & JavaScript
От: boot  
Дата: 29.06.12 03:25
Оценка:
ЗЫ: Если посетите гугл, ключевые слова:
для ИЕ "надстройка"
для ФФ addon, дополнение
дла Chrome extention, расширение
и т.д. называют по разному, суть та же
Жизнеспособность прямо пропорциональна простоте!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.