Russian Qt Forum
Ноябрь 23, 2024, 16:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Возможности QtWebkit (серия вопросов)  (Прочитано 7334 раз)
EvgeniyM
Гость
« : Декабрь 14, 2012, 21:13 »

Здравствуйте скажите реализуемы ли в QtWebkit такие возможности?

1.1) Симулировать нажатие (клик) по ссылки программно.
Именно точная симуляции, вместо скажем вызова псевдо события "click" на javascript.
Интересует как координатная симуляци, так и скажем чисто программно через DOM (если такое существует вообще).

1.2) А так же можно ли заполнить скажем поля input так же программно (думаю это возможно вставляя через DOM значения)?

Нужно для написания полноценных функциональных веб-тестов.

~~~~

2.1) Можно ли симулировать клик по плагину, скажем кликнуть "плей" во флеш плеере или html 5 видео плеере?
Я так понимаю реализация будет по координатам, хотя было бы не плохо иметь программное взаимодействие, если это возможно?

2.2) Можно ли получить доступ к ресурсам кэша в проигрываемом видео (flash или html5 плееру), для последующего сохранения?

Нужно получить скриншоты из embed-видео, сайты предоставляют вставку, но не представляют качественные большие скриншоты, нужно их получить (сохранив фрагмент видео, и потом получить скриншоты через например ffmpeg).
Записан
mutineer
Гость
« Ответ #1 : Декабрь 14, 2012, 22:54 »

Симулировать любой клик можно отправкой QMouseEvent в нужный виджет
Записан
Bepec
Гость
« Ответ #2 : Декабрь 14, 2012, 23:03 »

Все вопросы ДА, кроме нажатия мышки.

Когда я интересовался этим, я не мог поймать координаты и тыкнуть мышой. Так же некоторые элементы защищены проверками на "реалистичность" нажатия. Аля если с последней координаты курсор прыгнул сразу на кнопку = бот Веселый
Записан
EvgeniyM
Гость
« Ответ #3 : Декабрь 14, 2012, 23:12 »

Все вопросы ДА, кроме нажатия мышки.

Когда я интересовался этим, я не мог поймать координаты и тыкнуть мышой. Так же некоторые элементы защищены проверками на "реалистичность" нажатия. Аля если с последней координаты курсор прыгнул сразу на кнопку = бот Веселый
Это где это так? Кто будет в вебе предложении положение курсора отравлять.

Где храниться тот самый кэш, из которого мона выдрать часть видео потока?
Записан
Figaro
Гость
« Ответ #4 : Декабрь 15, 2012, 08:05 »

Присоеденяюсь к вопросу топикстартера, но интересует реализация псевдо события "click" на javascript? C вебкитом не работал, но придется...
Записан
Bepec
Гость
« Ответ #5 : Декабрь 15, 2012, 11:51 »

Я вам по секрету скажу. Есть JavaScipt. Он отслеживает перемещение мыши Улыбающийся Если ты мгновенно наведёшь на кнопку и нажмёшь, будет считаться эмуляцией. И это самая простая его реализация Веселый

На деле же есть пара способов клика жабоскриптом. Вызвать событие onclick у элемента, или же вызвать напрямую вызываемую функцию.

И то и то на сайтах, подумавших о запрете автоматизации (типа серфинга и прочего) не прокатывает. Ибо там как раз стоят проверки. Так же не прокатывает onclick у форм. Там надо вызывать submit, но опять таки зачастую он защищён.
Записан
EvgeniyM
Гость
« Ответ #6 : Декабрь 15, 2012, 13:21 »

Я вам по секрету скажу. Есть JavaScipt. Он отслеживает перемещение мыши Улыбающийся Если ты мгновенно наведёшь на кнопку и нажмёшь, будет считаться эмуляцией. И это самая простая его реализация Веселый

На деле же есть пара способов клика жабоскриптом. Вызвать событие onclick у элемента, или же вызвать напрямую вызываемую функцию.

И то и то на сайтах, подумавших о запрете автоматизации (типа серфинга и прочего) не прокатывает. Ибо там как раз стоят проверки. Так же не прокатывает onclick у форм. Там надо вызывать submit, но опять таки зачастую он защищён.
Событие click крайне урезана и по сути не передает помоему event (а так же информацию о месте клика и прочее что очень важно).



Мне посоветовали из соседнего форума:
Цитировать
Для полной имитации клика мыши:
Создаешь событие мыши:
Код
C++ (Qt)
QMouseEvent event(QEvent::MouseButtonPress, pos, Qt::LeftButton, 0, 0);
Посылаешь его своему веб вью:
Код
C++ (Qt)
QApplication::sendEvent(webView, &event);

Что касается взаимодействия с flash, то уверен что можно только по координатам


Что касается отслеживания, так это мистика какая-то. Во первых javascript выполняется на стороне клиента и можно реализовать двумя способами:
1) Обнаружение быстрого перемещения с помощью самого javascript - но вырезать такой код можно в течение минуты.
2) Или же посылать через аякс координаты мышки - но вы представляете сколько это запросов на сервер (на 1000 хостов вы получите наверно миллионы)?
Да и реализовать рандомное движение мышки к кнопке дело тех же 2 минут (чтобы отличить уже поведение человека потребуется алгоритм стоимостью пару сотен тысяч долларов и столько же сотен человеко-часов (и суперкомпьютер вычисляющий все это) - но и тогда можно подделать до человеческой эмуляции - тут "гонка брони и снаряда").

Вы наверно совершенно не знакомы с технологиями программирование на стороне тонкого клиента, но обладаете изрядной фантазией? Или же мне не известны какие-то подводные камни и специфичные технические реализации?
Записан
Bepec
Гость
« Ответ #7 : Декабрь 15, 2012, 14:16 »

Евгений, у вас видимо фантазия разыгрывается Веселый

Для 1 сайта то, о чем я говорю - не проблема. Да, жабу можно вырезать. Точнее не так, в той же жабе и кроется функционал сайта. Т.е. его нужно модифицировать.
Чтобы его модифицировать, нужно его сначала понять. А если он пропущен через обфускатор, это займёт довольно много времени.
Ладно, справились (за день), идём дальше.
Щелкаем - получаем результат, молодцы. Но вот только это у нас отнимает около дня на 1 сайт. А если изменится на строчечку его жаба, то извиняй, опять смотри и думай.

И да, встречаются на таких сайтах ссылки на жабаскрипты, расположенные в хранилищах, модифицировать которые ты не можешь Улыбающийся И я не могу. А вот что ему надо там - надо ещё понять, см. выше.

У меня была мысль же реализации клиента всё для всех. Она отпала именно по этим причинам. Оказалось проще снифферить обмен и сделать мини клиент для каждого необходимого сайта.

PS и Евгений, почитайте про технологии. 50 тысяч, 150 тысяч обращений в секунду для серверов - плёвое дело. К тому же аякс на таких сайтах почти и не используется Улыбающийся

Записан
EvgeniyM
Гость
« Ответ #8 : Декабрь 15, 2012, 15:51 »

Евгений, у вас видимо фантазия разыгрывается Веселый

Для 1 сайта то, о чем я говорю - не проблема. Да, жабу можно вырезать. Точнее не так, в той же жабе и кроется функционал сайта. Т.е. его нужно модифицировать.
Чтобы его модифицировать, нужно его сначала понять. А если он пропущен через обфускатор, это займёт довольно много времени.
Ладно, справились (за день), идём дальше.
Щелкаем - получаем результат, молодцы. Но вот только это у нас отнимает около дня на 1 сайт. А если изменится на строчечку его жаба, то извиняй, опять смотри и думай.

И да, встречаются на таких сайтах ссылки на жабаскрипты, расположенные в хранилищах, модифицировать которые ты не можешь Улыбающийся И я не могу. А вот что ему надо там - надо ещё понять, см. выше.

У меня была мысль же реализации клиента всё для всех. Она отпала именно по этим причинам. Оказалось проще снифферить обмен и сделать мини клиент для каждого необходимого сайта.

PS и Евгений, почитайте про технологии. 50 тысяч, 150 тысяч обращений в секунду для серверов - плёвое дело. К тому же аякс на таких сайтах почти и не используется Улыбающийся

Чаще обфускация это тупо вырезать пробелы и перенос строк, обратный скрипт будет не большой, хотя я обычно кидаю в Netbeans и форматирую обратно в мой стиль с моим любимыми отступами и переносами. Любое кодирование абсолютно обратимо, такая уж технология, она пугает только школьников.

Если автор параноидален или информация такая ценная то потратить можно на этот сайт и 1 день, но такой сайт будет один из миллиона, ибо просто глупо.
Найти нужный участок можно путем простого поиска зарегистрированы событий мыши или вызовов аякса. Многие плагины это умеют и мило собирают все в кучу.
Но все это бред, не знаю позволяет ли webkit модифицировать js, но я точно знаю что я могу загрузить страницу без чужих js скриптов, и даже со своими Улыбающийся

Чтобы я не усомнился в ваших знаниях, покажите мне сайты, где используется эти технологи и раз вы писали, что пытались найти выход, укажите место этого злобного кода, который следит за мной?

PS 50К-150К обращений - да вас съест с говном любой оптимизатор. Тут 10% выигрываешь у программы - счастлив как щеночек, а тут вы говорите про 10.000% и более процентов.
« Последнее редактирование: Декабрь 15, 2012, 16:02 от EvgeniyM » Записан
Bepec
Гость
« Ответ #9 : Декабрь 15, 2012, 16:32 »

Я не вижу в ваших рассуждениях смысла. Вы меня не читаете. Почему же тогда я должен вам отвечать?

PS любую браузерку с донатом возьмите. И учтите, что обфускация - изменения имён переменных и прочего. А не вырезание пробелов Веселый Если сможете разобрать в куче
Код:
sdfgdfg=1sdfgregdfg=3gsdfgdfjkghk=54
какая переменная к чему относиться, я лишь склонюсь к вашим ногам Веселый И да, жаба обычно содержит нужный функционал, так что вырезать у вас не получится Веселый

засим прекращаю с вами общение из-за отсутствия смысла в диалоге. Хотите споров - ищите других Улыбающийся Хотели совет - я вам дал Улыбающийся
Записан
EvgeniyM
Гость
« Ответ #10 : Декабрь 15, 2012, 16:38 »

Я не вижу в ваших рассуждениях смысла. Вы меня не читаете. Почему же тогда я должен вам отвечать?

PS любую браузерку с донатом возьмите. И учтите, что обфускация - изменения имён переменных и прочего. А не вырезание пробелов Веселый Если сможете разобрать в куче
Код:
sdfgdfg=1sdfgregdfg=3gsdfgdfjkghk=54
какая переменная к чему относиться, я лишь склонюсь к вашим ногам Веселый И да, жаба обычно содержит нужный функционал, так что вырезать у вас не получится Веселый

засим прекращаю с вами общение из-за отсутствия смысла в диалоге. Хотите споров - ищите других Улыбающийся Хотели совет - я вам дал Улыбающийся


Обфускация обратима, многие и пишут такие переменные что обфусировать не нужно)), я читаю вас и по пунктам привожу факты, не хотите как хотите, пускай остается за вами как ваша фантазия.
Записан
Bepec
Гость
« Ответ #11 : Декабрь 15, 2012, 17:21 »

аминь Улыбающийся

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.09 секунд. Запросов: 21.