Labview+Google Chrome

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Labview+Google Chrome

Сообщение rushonda »

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

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

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Labview+Google Chrome

Сообщение dadreamer »

 
Вложения
2017-10-15_1-37-53.jpg

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

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

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Labview+Google Chrome

Сообщение dadreamer »

rushonda писал(а):эти функции обычно используются для того чтобы реализовать сервер-клиент для управления например с телефона - я пока только такие примеры видел.
Или я что-то путаю?

Нет, эти :vi: можно использовать для "общения" с любыми сайтами по протоколу HTTP(S), но для этого требуются базовые знания работы протокола, в частности виды основных запросов и принципы их работы. Если понимаете, чем отличается GET от POST, и имеете в арсенале веб-сниффер (Fiddler или Charles), то можете начинать программировать. Учтите, что веб-контент сайтов представлен в "сыром" виде и придётся его парсить.
rushonda писал(а):если у кого есть ссылки или примеры - скиньте пожалуйста.

Вот примет авторизации на Мэйл.Ру: viewtopic.php?p=65162#p65162 Не факт, что всё ещё работает, но концепция построения должна быть понятна.

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

Спасибо, то что надо, буду разбираться

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

Подскажите как все-таки нажать ссылку на сайте с помощью labview ?

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Labview+Google Chrome

Сообщение dadreamer »

rushonda писал(а):Подскажите как все-таки нажать ссылку на сайте с помощью labview ?

Без использования HTTP-запросов - боюсь, что никак. Можете, конечно, изобрести или где-то найти кликер, который будет мышку наводить по указанным координатам. Но это решение весьма ненадёжное - изменится вёрстка сайта и клик будет не в том месте.

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

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

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

Аватара пользователя
alerm

Activity
leader
leader
Сообщения: 581
Зарегистрирован: 02 май 2012, 21:28
Награды: 1
Репутация: 0
Версия LabVIEW: 13
Контактная информация:

Re: Labview+Google Chrome

Сообщение alerm »

rushonda писал(а):Сайт абсолютно любой, хоть google chrome

:shok: :suicide:

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

Google)

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Labview+Google Chrome

Сообщение dadreamer »

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

Переход к результатам поиска в гугле выполняется через обычный GET-запрос:
google_get.png
google_get.vi
lv2014
(8.89 КБ) 158 скачиваний

Хотя у гугла есть более удобное API для взаимодействия, так что можно в данном случае не изобретать велосипед.

Прочие сайты часто на кнопку "вешают" POST-запрос. Вот пример отправки запроса, аналогичного нажатию кнопки "Вход" при авторизации юзера на :labview: Портале:
lvp_post.png
lvp_post.vi
lv2014
(10.83 КБ) 174 скачивания

При вводе неверных данных на сайте появляется следующее сообщение:
lvp_wrong_site.jpg

Соответственно, в ответе от сервера (параметр Body) будет вот так:
lvp_wrong_lv.jpg

При правильных данных сайт нас перекидывает на главную и можно видеть число ЛС, кнопку выхода и другие вещи.
lvp_right_site.jpg
lvp_right_site.jpg (32.43 КБ) 9349 просмотров

В ответе от сервера это выглядит как-то так:
lvp_right_lv.jpg

Надеюсь, объяснил теперь более понятно. Т.о., к каждой кнопке нужен индивидуальный подход. :wink: А ещё лучше было бы, если бы ваш сайт предоставлял свой API, скажем на SOAP-протоколе. Тогда бы и парсинг был проще в разы, и запросы-ответы-параметры были бы описаны.
rushonda писал(а):Пример ... открытие какого-нибудь браузера

В данном случае браузер открывать не нужно. HTTP Client и есть браузер. Можете, конечно, поискать какие-то сторонние движки, поддерживающие отображение тэгов. Но я сомневаюсь, что найдёте что-то нормальное.

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

Спасибо за помощь!
Пока понимания мало: пробую тоже самое с сайтом https://lumen.ni.com.

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

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

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Labview+Google Chrome

Сообщение 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-страницы. Нажать её можно только с помощью мыши. Как я уже говорил, можно попробовать отыскать кнопку программно, а затем, имея координаты, переместить курсор в нужную позицию и сделать клик. В принципе, если есть уверенность в том, что дизайн сайта не поменяется кардинально, то можно попробовать реализовать данный подход. Вам потребуется снять скрин контрола, найти на рисунке кнопку, ну и далее - по алгоритму.

rushonda
adviser
adviser
Сообщения: 200
Зарегистрирован: 26 фев 2016, 06:31
Репутация: 0
Версия LabVIEW: 18-19
Контактная информация:

Re: Labview+Google Chrome

Сообщение rushonda »

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

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Labview+Google Chrome

Сообщение dadreamer »

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

Я с досады закрыл ВИайку без сохранения... :D Если будет время, завтра могу снова попробовать. Но что-то сайт у них чересчур хитромудрый. Там кстати ещё отдельно надо авторизовываться, чтобы в форумах писать.

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

Ответить

Вернуться в «Общие»