Russian Qt Forum

Qt => Работа с сетью => Тема начата: EvgeniyM от Декабрь 14, 2012, 21:13



Название: Возможности QtWebkit (серия вопросов)
Отправлено: 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).


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: mutineer от Декабрь 14, 2012, 22:54
Симулировать любой клик можно отправкой QMouseEvent в нужный виджет


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: Bepec от Декабрь 14, 2012, 23:03
Все вопросы ДА, кроме нажатия мышки.

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


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: EvgeniyM от Декабрь 14, 2012, 23:12
Все вопросы ДА, кроме нажатия мышки.

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

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


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: Figaro от Декабрь 15, 2012, 08:05
Присоеденяюсь к вопросу топикстартера, но интересует реализация псевдо события "click" на javascript? C вебкитом не работал, но придется...


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: Bepec от Декабрь 15, 2012, 11:51
Я вам по секрету скажу. Есть JavaScipt. Он отслеживает перемещение мыши :) Если ты мгновенно наведёшь на кнопку и нажмёшь, будет считаться эмуляцией. И это самая простая его реализация :D

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

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


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: EvgeniyM от Декабрь 15, 2012, 13:21
Я вам по секрету скажу. Есть JavaScipt. Он отслеживает перемещение мыши :) Если ты мгновенно наведёшь на кнопку и нажмёшь, будет считаться эмуляцией. И это самая простая его реализация :D

На деле же есть пара способов клика жабоскриптом. Вызвать событие 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 минут (чтобы отличить уже поведение человека потребуется алгоритм стоимостью пару сотен тысяч долларов и столько же сотен человеко-часов (и суперкомпьютер вычисляющий все это) - но и тогда можно подделать до человеческой эмуляции - тут "гонка брони и снаряда").

Вы наверно совершенно не знакомы с технологиями программирование на стороне тонкого клиента, но обладаете изрядной фантазией? Или же мне не известны какие-то подводные камни и специфичные технические реализации?


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: Bepec от Декабрь 15, 2012, 14:16
Евгений, у вас видимо фантазия разыгрывается :D

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

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

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

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



Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: EvgeniyM от Декабрь 15, 2012, 15:51
Евгений, у вас видимо фантазия разыгрывается :D

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

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

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

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

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

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

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

PS 50К-150К обращений - да вас съест с говном любой оптимизатор. Тут 10% выигрываешь у программы - счастлив как щеночек, а тут вы говорите про 10.000% и более процентов.


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: Bepec от Декабрь 15, 2012, 16:32
Я не вижу в ваших рассуждениях смысла. Вы меня не читаете. Почему же тогда я должен вам отвечать?

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

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


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: EvgeniyM от Декабрь 15, 2012, 16:38
Я не вижу в ваших рассуждениях смысла. Вы меня не читаете. Почему же тогда я должен вам отвечать?

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

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


Обфускация обратима, многие и пишут такие переменные что обфусировать не нужно)), я читаю вас и по пунктам привожу факты, не хотите как хотите, пускай остается за вами как ваша фантазия.


Название: Re: Возможности QtWebkit (серия вопросов)
Отправлено: Bepec от Декабрь 15, 2012, 17:21
аминь :)

(http://demotivators.su/upload/600/5461290861304.jpg)