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

HTTP запрос

Добавлено: 26 июн 2018, 20:37
IvanLis
Перепробовал все известные мне варианты.
Подскажите, каким образом мне получить данные по URL:

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

http://club-europa.ru/assets/components/europaclub/action.php?action=common/getcheck&checkNum=21,4,2687,435
Необходимо получить текст страницы:

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

<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":[]}
получить не получилось. Со сниффером тоже толком ничего не вышло.

Re: HTTP запрос

Добавлено: 26 июн 2018, 22:02
dadreamer
У меня по вышеприведённой ссылке тоже вылетает
{"success":false,"message":"","total":0,"errors":[],"object":[]}
Подозреваю, надо залогиниться, или же ссылка не та.

Re: HTTP запрос

Добавлено: 27 июн 2018, 09:50
IvanLis
dadreamer писал(а):У меня по вышеприведённой ссылке тоже вылетает
{"success":false,"message":"","total":0,"errors":[],"object":[]}
Подозреваю, надо залогиниться, или же ссылка не та.
Видимо браузер автоматом из куков берет инфу для авторизации.
Попробовал с другого компа, действительно до идентификации ничего путного не выходит.
Нужно будет вникнуть и попробовать: http://labviewportal.org/viewtopic.php?f=87&t=9531

Re: HTTP запрос

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

Re: HTTP запрос

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

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

\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 подхватывает и декодирует файл нормально, а тот же блокнот не хочет, видимо в начале байтики лишние.
Нужно разбираться дальше....

Re: HTTP запрос

Добавлено: 27 июн 2018, 19:34
IvanLis
Сегодня видимо не мой день.
Все работает, ответ получаю (значение сохранено в файле "по умолчанию").
Europa.vi
lv2016
(24.38 КБ) 165 скачиваний
Перекодировать никак не получается.
Сохраняю в файл:
file.txt
(313 байт) 151 скачивание
OpenOffice открывается файл нормально.
Снимок экрана от 2018-06-27 19-25-29.png
Судя по настройкам импорта, кодировка UTF-8:
Снимок экрана от 2018-06-27 19-26-22.png
Кто знает как правильно перекодировать, что бы получить текст, для его дальнейшей обработки?

Re: HTTP запрос

Добавлено: 28 июн 2018, 11:30
Blackman
Данные в файле какие то "левые") Не похожи на текст приведенный в офисе.
В :labview: есть примитивы для работы с кодировкой UTF8 :wink:

Re: HTTP запрос

Добавлено: 28 июн 2018, 13:09
dadreamer
IvanLis писал(а):Кто знает как правильно перекодировать, что бы получить текст, для его дальнейшей обработки?
Это архив. Открывается любым нормальным архиватором, например 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:

Re: HTTP запрос

Добавлено: 28 июн 2018, 15:21
Blackman
Нет нормального архиватора) :D -> file.txt -> file.odt (online) -> wordpad -> save as text file.txt.txt -> change extension file.txt.html

Re: HTTP запрос

Добавлено: 28 июн 2018, 15:28
dadreamer
Blackman писал(а):Нет нормального архиватора) :D -> file.txt -> file.odt (online) -> wordpad -> save as text file.txt.txt -> change extension file.txt.html
Зачем же так мучатьcя?.. Изображение

Re: HTTP запрос

Добавлено: 28 июн 2018, 15:49
Blackman
В Headers точно указано: Content-Encoding: gzip
Коммент при извлечении: Single Packed File detected...

Re: HTTP запрос

Добавлено: 28 июн 2018, 16:00
IvanLis
dadreamer писал(а):Это архив. Открывается любым нормальным архиватором, например 7-Zip или WinRAR. Нужно распаковать содержащийся внутри файл и затем прочитать в :labview: как обычный текст.
:thank:
премного благодарен

Видимо жара сказывается, там же в заголовке указано:

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

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 КБ) 6988 просмотров
Для декомпрессии используется функция основанная на 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
Вечером начну парсить и сохранять в БД.

Re: HTTP запрос

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

Re: HTTP запрос

Добавлено: 29 июн 2018, 10:37
dadreamer
IvanLis писал(а):Сегодня начал делать на 64bit системе, оказывается OpenG.lib / lvzip по умолчанию не поддерживает Linux 64bit.
Пришлось вручную скачивать необходимую библиотеку с репозитария: https://sourceforge.net/p/opengtoolkit/ ... ip/source/
Править используемые функции, только тогда заработало.
Я же выше дал ссылку на актуальную версию с поддержкой 64 бит:
dadreamer писал(а):Чем распаковать из-под :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 пакеты.