Labview+Google Chrome

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума

Re: Labview+Google Chrome

Postby rushonda on 23 Nov 2017, 21:32

1) Если можно то VI -шку сделайте плиз.
2) А в случае кликов нет примера? В этом варианте кстати окно должно быть открыто всегда? Vision кстати стоит.
3) Где искать литературу по HTTP, а то функции описаны, а что на вход подавать непонятно в каком виде.
4) На питоне например клик по кнопкам делается вроде просто - смотришь код страницы, ищешь описание кнопки и вперед. А тут что-то очень мудрено.
rushonda
junior
junior
 
Posts: 57
Joined: 26 Feb 2016, 06:31
LabVIEW Version: 14
Karma: 0

Re: Labview+Google Chrome

Postby dadreamer on 23 Nov 2017, 21:58

rushonda wrote:1) Если можно то VI -шку сделайте плиз.

Ок. Но не обещаю, что на 100% будет работать. У меня почему-то через раз логинилась.
2) А в случае кликов нет примера? В этом варианте кстати окно должно быть открыто всегда?

Setting Cursor Position Programmatically With LabVIEW
How Can I Programmatically Simulate A Mouse Click?
Конечно, должно быть открыто, пока выполняются клики или снятие изображения для поиска кнопки или ещё что-то, связанное с этим. Когда окно по алгоритму уже не нужно, его можно закрыть.
rushonda wrote:3) Где искать литературу по HTTP, а то функции описаны, а что на вход подавать непонятно в каком виде.

Вам должны быть интересны только два вида запросов - GET и POST. Остальное в данной задаче не понадобится. Почитайте про эти запросы на вики или наберите в гугле - инфы достаточно. Параметры: для GET адрес сайта (сервера), для POST адрес сайта (сервера) и отсылаемый на сервер параметр (параметры) (в :labview: это одна переменная - строка - содержащая ряд параметров, разделяемых &). Для просмотра запросов, отправляемых браузером на сервер и получаемых с сервера, можно установить сниффер, например плагин для Лисы Live Http Headers или отдельный софт Fiddler или Charles. Сниффер всегда помогает в составлении верных запросов.
rushonda wrote:4) На питоне например клик по кнопкам делается вроде просто - смотришь код страницы, ищешь описание кнопки и вперед. А тут что-то очень мудрено.

Очевидно, для Питона существует фреймворк, облегчающий задачу парсинга веб-контента. Не знаю, существуют ли подобные тулкиты под :labview: , специально не искал. Но, к примеру, в Дельфях есть аналогичные HTTP-клиенты - Indy или Synapse. Работа с ними почти ничем не отличается от того, что приходится делать в :labview: . Мне приходилось писать простенькие тулзы для конкретных сайтов. Запросы и парсинг - классика. :wink:
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet

Re: Labview+Google Chrome

Postby rushonda on 23 Nov 2017, 23:10

Ок, спасибо. Плагин поставил.
Если окно нужно держать постоянно открытым, то лучше все-таки сделать через GET и POST.
rushonda
junior
junior
 
Posts: 57
Joined: 26 Feb 2016, 06:31
LabVIEW Version: 14
Karma: 0

Re: Labview+Google Chrome

Postby dadreamer on 24 Nov 2017, 08:59

ni_login.vi
lv2014
(17.13 KiB) Downloaded 8 times

По-прежнему через раз логинится. Ну, я думаю, это не критично - можно вызвать код несколько раз, пока не зайдёт в аккаунт. При успешной авторизации в заголовках должны быть строки
Code: Select all
HTTP/1.1 302 Moved Temporarily

Location: http://www.ni.com/ru-ru.html

Это значит, что сервер перенаправляет клиента по адресу Location. В теле ответа будет
Code: Select all
<html><head><title>302 Moved Temporarily</title></head>
<body bgcolor="#FFFFFF">
<p>This document you requested has moved temporarily.</p>
<p>It's now at <a href="http://www.ni.com/ru-ru.html">http://www.ni.com/ru-ru.html</a>.</p>
</body></html>

Вам нужно будет "отловить" этот ответ 302, чтобы точно знать, что можно дальше работать. Для большей уверенности можно зайти потом на
Code: Select all
http://www.ni.com/myni/dashboard/ru/

В теле ответа будет инфа о данных юзера (ник, имя, фамилия и т.д.).
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet

Re: Labview+Google Chrome

Postby rushonda on 24 Nov 2017, 18:35

О, спасибо.
Вроде принцип становится понятен - запрос-ответ - поиск инфы в теле ответа. Но вопросы все же остались и они кажется простые:
1) есть такой запрос как вы составили:
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=
&LoginForm:_idcl=LoginForm:continue
и др.
Как составлять сам запрос в POST - откуда брать инфу и в каком виде составлять?

2) ну и как составить запрос например клик по вкладке ИННОВАЦИИ и вбить строку в ПОИСК на этом сайте - в принципе вопрос аналогичен 1, но может как пример поможет быстрее разобраться. Заранее спасибо
rushonda
junior
junior
 
Posts: 57
Joined: 26 Feb 2016, 06:31
LabVIEW Version: 14
Karma: 0

Re: Labview+Google Chrome

Postby dadreamer on 24 Nov 2017, 19:10

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

Все параметры берутся из сниффера. Для GET достаточно посмотреть адрес, по которому обращаться. Для POST кроме адреса нужно посмотреть передаваемые параметры. Они идут в конце запроса, после заголовков. Обычно в сниффере самый первый запрос - тот, что нужен. Дальше идёт уже подгрузка различных модулей, скриптов, шаблонов, стилей и т.п.
Attachments
2017-11-24_21-14-30.jpg
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet

Previous

Return to Общие

Who is online

Users browsing this forum: Yahoo and 9 guests

cron