Страница 1 из 4

Labview+Google Chrome

Добавлено: 14 окт 2017, 22:18
rushonda
Добрый вечер, форумчане.
Подскажите, можно ли как-то с помощью labview сделать так, чтобы можно было заходить на сайт - и нажимать далее на сайте по кнопкам или ссылкам.
Все что нарыл: через webbrowser (net structure) можно заходить на сайт ну и использовать функции: назад, вперед, домой.
А что то более подробное хотелось бы найти, как использовать код страницы для перехода по ссылкам на сайте.

p.s. мне кажется не совсем конечно сфера labview но все-таки)

Re: Labview+Google Chrome

Добавлено: 14 окт 2017, 23:38
dadreamer
 

Re: Labview+Google Chrome

Добавлено: 15 окт 2017, 16:29
rushonda
спасибо - эти функции обычно используются для того чтобы реализовать сервер-клиент для управления например с телефона - я пока только такие примеры видел.
Или я что-то путаю?
если у кого есть ссылки или примеры - скиньте пожалуйста.

Re: Labview+Google Chrome

Добавлено: 15 окт 2017, 17:11
dadreamer
rushonda писал(а):эти функции обычно используются для того чтобы реализовать сервер-клиент для управления например с телефона - я пока только такие примеры видел.
Или я что-то путаю?
Нет, эти :vi: можно использовать для "общения" с любыми сайтами по протоколу HTTP(S), но для этого требуются базовые знания работы протокола, в частности виды основных запросов и принципы их работы. Если понимаете, чем отличается GET от POST, и имеете в арсенале веб-сниффер (Fiddler или Charles), то можете начинать программировать. Учтите, что веб-контент сайтов представлен в "сыром" виде и придётся его парсить.
rushonda писал(а):если у кого есть ссылки или примеры - скиньте пожалуйста.
Вот примет авторизации на Мэйл.Ру: http://labviewportal.org/viewtopic.php?p=65162#p65162 Не факт, что всё ещё работает, но концепция построения должна быть понятна.

Re: Labview+Google Chrome

Добавлено: 16 окт 2017, 23:58
rushonda
Спасибо, то что надо, буду разбираться

Re: Labview+Google Chrome

Добавлено: 22 ноя 2017, 21:38
rushonda
Подскажите как все-таки нажать ссылку на сайте с помощью labview ?

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 07:44
dadreamer
rushonda писал(а):Подскажите как все-таки нажать ссылку на сайте с помощью labview ?
Без использования HTTP-запросов - боюсь, что никак. Можете, конечно, изобрести или где-то найти кликер, который будет мышку наводить по указанным координатам. Но это решение весьма ненадёжное - изменится вёрстка сайта и клик будет не в том месте.

Что конкретно не получается с HTTP инструментами? Пример сайта и кнопка, на которую нажать надо.

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 08:58
rushonda
Сайт абсолютно любой, хоть google chrome, кнопка НАЙТИ допустим. Пример где-то можно найти хоть через http, нажатия на кнопку и открытие какого-нибудь браузера

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 11:51
alerm
rushonda писал(а):Сайт абсолютно любой, хоть google chrome
:shok: :suicide:

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 12:14
rushonda
Google)

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 12:29
dadreamer
rushonda писал(а):Сайт абсолютно любой, хоть google chrome, кнопка НАЙТИ допустим. Пример где-то можно найти хоть через http, нажатия на кнопку и открытие какого-нибудь браузера
Переход к результатам поиска в гугле выполняется через обычный GET-запрос:
google_get.png
google_get.vi
lv2014
(8.89 КБ) 287 скачиваний
Хотя у гугла есть более удобное API для взаимодействия, так что можно в данном случае не изобретать велосипед.

Прочие сайты часто на кнопку "вешают" POST-запрос. Вот пример отправки запроса, аналогичного нажатию кнопки "Вход" при авторизации юзера на :labview: Портале:
lvp_post.png
lvp_post.vi
lv2014
(10.83 КБ) 302 скачивания
При вводе неверных данных на сайте появляется следующее сообщение:
lvp_wrong_site.jpg
Соответственно, в ответе от сервера (параметр Body) будет вот так:
lvp_wrong_lv.jpg
При правильных данных сайт нас перекидывает на главную и можно видеть число ЛС, кнопку выхода и другие вещи.
lvp_right_site.jpg
lvp_right_site.jpg (32.43 КБ) 12821 просмотр
В ответе от сервера это выглядит как-то так:
lvp_right_lv.jpg
Надеюсь, объяснил теперь более понятно. Т.о., к каждой кнопке нужен индивидуальный подход. :wink: А ещё лучше было бы, если бы ваш сайт предоставлял свой API, скажем на SOAP-протоколе. Тогда бы и парсинг был проще в разы, и запросы-ответы-параметры были бы описаны.
rushonda писал(а):Пример ... открытие какого-нибудь браузера
В данном случае браузер открывать не нужно. HTTP Client и есть браузер. Можете, конечно, поискать какие-то сторонние движки, поддерживающие отображение тэгов. Но я сомневаюсь, что найдёте что-то нормальное.

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 18:56
rushonda
Спасибо за помощь!
Пока понимания мало: пробую тоже самое с сайтом https://lumen.ni.com.

1) Какие параметры на фото забиты не так?

2) Через webbrowser никак на кнопку не нажать?

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 20:55
dadreamer
rushonda писал(а):Спасибо за помощь!
Пока понимания мало: пробую тоже самое с сайтом https://lumen.ni.com.
Что-то сложного подопытного вы выбрали... Там скриптов куча и хэши на каждом шагу генерятся. А какова суть сей затеи? Хотите написать какого-то робота для сайта? И всё-таки, ni.com - конечная цель или это что-то другое? Если второе, то советую не заморачиваться, а сразу перейти к цели. Если же первое, то могу дать пару советов, но не более (ибо до конца дойти у меня не вышло - учётку заблочили из-за множества неверных попыток авторизации).
1. Сайт ставит несколько критичных cookies, потому сперва нужно GET'ом зайти на

Код: Выделить всё

https://lumen.ni.com/nicif/us/header_login/content.xhtml?action=login&du=http%3A%2F%2Fwww.ni.com%2Fru-ru.html
2. Из хэдеров надо выдернуть параметр JSESSIONID (может, нужно, а может и нет)
3. Из тела ответа надо выдернуть параметр javax.faces.ViewState
4. Далее POST на

Код: Выделить всё

https://lumen.ni.com/nicif/login.xhtml;jsessionid=[здесь JSESSIONID из п.2]
Запрос будет содержать следующие параметры:

Код: Выделить всё

LoginForm:processLoginFlag=&LoginForm:email=[Здесь логин]&LoginForm:password=[Здесь пароль]&recovery_appcode=HEADER_LOGIN&recovery_instance=US&recovery_scheduleCode=&recovery_du=http://www.ni.com/ru-ru.html&LoginForm_SUBMIT=1&javax.faces.ViewState=[Здесь javax.faces.ViewState из п.3]&LoginForm:_idcl=LoginForm:continue
Но даже после этого табличка о неудаче появляется не всегда, что говорит о том, что где-то что-то не совсем окей. Разбираться детально уже неохота.
rushonda писал(а):2) Через webbrowser никак на кнопку не нажать?
Кнопка не является частью контрола. Она часть WEB-страницы. Нажать её можно только с помощью мыши. Как я уже говорил, можно попробовать отыскать кнопку программно, а затем, имея координаты, переместить курсор в нужную позицию и сделать клик. В принципе, если есть уверенность в том, что дизайн сайта не поменяется кардинально, то можно попробовать реализовать данный подход. Вам потребуется снять скрин контрола, найти на рисунке кнопку, ну и далее - по алгоритму.

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 21:17
rushonda
Да, все верно, робот для сайта. А нельзя ли код того что Вы написали?
Как лучше это сделать, просьба дать те самые советы)?

Re: Labview+Google Chrome

Добавлено: 23 ноя 2017, 21:22
dadreamer
rushonda писал(а):Да, все верно, робот для сайта. А нельзя ли код того что Вы написали?
Как лучше это сделать, просьба дать те самые советы)?
Я с досады закрыл ВИайку без сохранения... :D Если будет время, завтра могу снова попробовать. Но что-то сайт у них чересчур хитромудрый. Там кстати ещё отдельно надо авторизовываться, чтобы в форумах писать.

Наверно, вариант с кликером даже проще будет. Особенно, если Vision стоит.