HTTP запрос

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы

HTTP запрос

Postby IvanLis on 26 Jun 2018, 20:37

Перепробовал все известные мне варианты.
Подскажите, каким образом мне получить данные по URL:
Code: Select all
http://club-europa.ru/assets/components/europaclub/action.php?action=common/getcheck&checkNum=21,4,2687,435

Необходимо получить текст страницы:
Code: Select all
<table class="checkTable table table-hovered"><tr><th>Наименование</th><th>Цена</th><th>количество</th></tr><tr><td>АЦИДОЛАКТ БОЖЬЯ КОРОВКА 0,45Л 2,5% С ЛАК</td><td> 40.5 руб. </td><td>1 шт.</td></tr><tr><td>АЦИДОЛАКТ БОЖЬЯ КОРОВКА 0,45Л 2,5% С ЛАК</td><td> 40.5 руб. </td><td>1 шт.</td></tr><tr><td>СИГАРЕТЫ ВИНСТОН БЛУ</td><td> 125 руб. </td><td>1 шт.</td></tr><tr><td colspan="4"><b>*П</b> - пометка товаров попавших в спецакцию.</td></tr></table>

Снимок экрана от 2018-06-26 20-20-16.png

Пока ничего кроме:
{"success":false,"message":"","total":0,"errors":[],"object":[]}

получить не получилось. Со сниффером тоже толком ничего не вышло.
User avatar
IvanLis
professor
professor
 
Posts: 4612
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: HTTP запрос

Postby dadreamer on 26 Jun 2018, 22:02

У меня по вышеприведённой ссылке тоже вылетает
{"success":false,"message":"","total":0,"errors":[],"object":[]}

Подозреваю, надо залогиниться, или же ссылка не та.
User avatar
dadreamer
professor
professor
 
Posts: 3104
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: HTTP запрос

Postby IvanLis on 27 Jun 2018, 09:50

dadreamer wrote:У меня по вышеприведённой ссылке тоже вылетает
{"success":false,"message":"","total":0,"errors":[],"object":[]}

Подозреваю, надо залогиниться, или же ссылка не та.


Видимо браузер автоматом из куков берет инфу для авторизации.
Попробовал с другого компа, действительно до идентификации ничего путного не выходит.
Нужно будет вникнуть и попробовать: viewtopic.php?f=87&t=9531
User avatar
IvanLis
professor
professor
 
Posts: 4612
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: HTTP запрос

Postby dadreamer on 27 Jun 2018, 10:53

В большинстве случаев бывает достаточно одного POST-запроса с данными для входа, чтобы залогиниться (при условии, что все необходимые заголовки уже прописаны) - см. пример авторизации на mail. Как вариант, можно загрузить cookies, использующиеся в браузере (это будет работать, если сервер поддерживает долгоживующие сессии, но время от времени всё равно придётся менять cookies).
User avatar
dadreamer
professor
professor
 
Posts: 3104
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: HTTP запрос

Postby IvanLis on 27 Jun 2018, 17:19

dadreamer wrote:В большинстве случаев бывает достаточно одного POST-запроса с данными для входа, чтобы залогиниться (при условии, что все необходимые заголовки уже прописаны) - см. пример авторизации на mail. Как вариант, можно загрузить cookies, использующиеся в браузере (это будет работать, если сервер поддерживает долгоживующие сессии, но время от времени всё равно придётся менять cookies).


Вроде сделал, осталось перекодировать нормально.... (это в режиме отображения - Codes)
Code: Select all
\1F\8B\b\00\00\00\00\00\00\03\CDR\CBj\C2@\14\FD\95\8B\D0MQ\A3\12w1_\D1\1F01\10h\A8E\A5k\B5\B4uU\EC\13i\D0\AA\85nZh\14\02\C1V\FD\853\7F\D4\93\t4\DDv\D7\C5\9D\99s\EE\BD\E7\0Es\C6\EA5\9D\C0\137hv\BB\8D\82\EB{\EE\F1\91fz\F9Z\F2\DBg^\C7k\15l\AB\D7a\F86\A6\88\90\E0\0B1\B6\D8aM\B4%\8E-\83I]\F0\AASQNlX\F7\89D]!V\035d\CF.K\1AZ3\8D\96\8D1\1B'\B8\C7\f!\CFOX\nn\b\1E\F1\8E\0F!\9Ea\CE\B8\E5i,\95\A2YG(\B5b\FD@\B0\90\AC\83r--%f\A5\\\17\D5W\E7X\95\E5\87\AE\8A\1A\A9a9\C3\FFe\F4\82\83\EF(1\C7\03\96x\13N\99\F0\89\17\043L\D3{\84x\C9\E5\AB\B5?\A8\8B\DB\0E\BA\A7\CD\93F\C1\A4\7F\8E}\88g\CBpl)\t\F6\B4\84\16\D2\8C\n"\E1\A6\9DT\FDt\CF\B2{\1A\BBV#\DAv!\E4\D4\80L\AC.\C9n\B8&\EA\FA\F7<C\7F\16\FB\1B(\BC`\0FR\02\00\00


Самое интересное, что OpenOffice подхватывает и декодирует файл нормально, а тот же блокнот не хочет, видимо в начале байтики лишние.
Нужно разбираться дальше....
User avatar
IvanLis
professor
professor
 
Posts: 4612
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: HTTP запрос

Postby IvanLis on 27 Jun 2018, 19:34

Сегодня видимо не мой день.
Все работает, ответ получаю (значение сохранено в файле "по умолчанию").
Europa.vi
lv2016
(24.38 KiB) Downloaded 22 times

Перекодировать никак не получается.
Сохраняю в файл:
file.txt
(313 Bytes) Downloaded 24 times

OpenOffice открывается файл нормально.
Снимок экрана от 2018-06-27 19-25-29.png

Судя по настройкам импорта, кодировка UTF-8:
Снимок экрана от 2018-06-27 19-26-22.png


Кто знает как правильно перекодировать, что бы получить текст, для его дальнейшей обработки?
User avatar
IvanLis
professor
professor
 
Posts: 4612
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: HTTP запрос

Postby Blackman on 28 Jun 2018, 11:30

Данные в файле какие то "левые") Не похожи на текст приведенный в офисе.
В :labview: есть примитивы для работы с кодировкой UTF8 :wink:
Attachments
UTF8 Convertor Primitives.png
UTF8 Convertor Primitives.png (13.47 KiB) Viewed 920 times
Blackman
leader
leader
 
Posts: 763
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: HTTP запрос

Postby dadreamer on 28 Jun 2018, 13:09

IvanLis wrote:Кто знает как правильно перекодировать, что бы получить текст, для его дальнейшей обработки?

Это архив. Открывается любым нормальным архиватором, например 7-Zip или WinRAR. Нужно распаковать содержащийся внутри файл и затем прочитать в :labview: как обычный текст.

Чем распаковать из-под :labview: - ну, можно поставить последний oglib_lvzip, там вроде бы должна быть поддержка Линукса.
Release 4.1.0, Released: Mar. 05, 2015
======================================

New features:
-------------
...
3) Added support for Windows and Linux 64 bit platforms

Или, может, есть какие-то другие тулкиты... :dntknw:
User avatar
dadreamer
professor
professor
 
Posts: 3104
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: HTTP запрос

Postby Blackman on 28 Jun 2018, 15:21

Нет нормального архиватора) :D -> file.txt -> file.odt (online) -> wordpad -> save as text file.txt.txt -> change extension file.txt.html
Blackman
leader
leader
 
Posts: 763
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: HTTP запрос

Postby dadreamer on 28 Jun 2018, 15:28

Blackman wrote:Нет нормального архиватора) :D -> file.txt -> file.odt (online) -> wordpad -> save as text file.txt.txt -> change extension file.txt.html

Зачем же так мучатьcя?.. Image
User avatar
dadreamer
professor
professor
 
Posts: 3104
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: HTTP запрос

Postby Blackman on 28 Jun 2018, 15:49

В Headers точно указано: Content-Encoding: gzip
Коммент при извлечении: Single Packed File detected...
Attachments
file.gz
(313 Bytes) Downloaded 19 times
Blackman
leader
leader
 
Posts: 763
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: HTTP запрос

Postby IvanLis on 28 Jun 2018, 16:00

dadreamer wrote:Это архив. Открывается любым нормальным архиватором, например 7-Zip или WinRAR. Нужно распаковать содержащийся внутри файл и затем прочитать в :labview: как обычный текст.


:thank:
премного благодарен

Видимо жара сказывается, там же в заголовке указано:
Code: Select all
Content-Encoding: gzip

Снимок экрана от 2018-06-28 15-57-01.png


----------------------
Спасибо всем за "коллективный разум"!
Вот решение:
Снимок экрана от 2018-06-28 16-25-42.png
Снимок экрана от 2018-06-28 16-25-42.png (8.88 KiB) Viewed 884 times

Для декомпрессии используется функция основанная на OpenG Zip Tools: https://forums.ni.com/t5/Example-Progra ... -p/3534832

По идее, в Windows нужно преобразование UTF-8 -> ASСII, но в Lunux и так кодировка UTF-8, по этому результат совпадает, а дополнительное преобразование кодировки можно исключить.
Снимок экрана от 2018-06-28 16-26-00.png


Вполне ожидаемый результат, вот что в Windows получилось:
Снимок экрана от 2018-06-28 16-48-09.png


Вечером начну парсить и сохранять в БД.
User avatar
IvanLis
professor
professor
 
Posts: 4612
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: HTTP запрос

Postby IvanLis on 29 Jun 2018, 08:52

Сегодня начал делать на 64bit системе, оказывается OpenG.lib / lvzip по умолчанию не поддерживает Linux 64bit.
Пришлось вручную скачивать необходимую библиотеку с репозитария: https://sourceforge.net/p/opengtoolkit/ ... ip/source/
Править используемые функции, только тогда заработало.
User avatar
IvanLis
professor
professor
 
Posts: 4612
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: HTTP запрос

Postby dadreamer on 29 Jun 2018, 10:37

IvanLis wrote:Сегодня начал делать на 64bit системе, оказывается OpenG.lib / lvzip по умолчанию не поддерживает Linux 64bit.
Пришлось вручную скачивать необходимую библиотеку с репозитария: https://sourceforge.net/p/opengtoolkit/ ... ip/source/
Править используемые функции, только тогда заработало.

Я же выше дал ссылку на актуальную версию с поддержкой 64 бит:
dadreamer wrote:Чем распаковать из-под :labview: - ну, можно поставить последний oglib_lvzip, там вроде бы должна быть поддержка Линукса.
Release 4.1.0, Released: Mar. 05, 2015
======================================

New features:
-------------
...
3) Added support for Windows and Linux 64 bit platforms

2018-06-29_13-08-30.jpg
Для скачивания требуется регистрация на Лаве. На форум не могу залить, к сожалению, размер файла >2 МБ. oglib_lvzip-4.1.0-b3.ogp ставится через VIPM точно так же, как и *.vip пакеты.
User avatar
dadreamer
professor
professor
 
Posts: 3104
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet


Return to Коммуникация с приборами

Who is online

Users browsing this forum: No registered users and 8 guests

cron