Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> lua (html)
yodich
сообщение 6.4.2021, 13:45
Сообщение #1


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Всем по привету!)
столкнулся с такой задачей: например, есть курс рубля и курс доллара и как известно он постоянно скачет, то дороже, то дешевле.
задача заключилась в том, чтобы получить данные с веб-страницы, а именно число (цену) доллара/рубля. но столкнулся с такой проблемой: я понятия не имею как с помощью lua, а тем более через uopilot получить это значение т.к. практики подобной не было...
p.s. получать можно не только данное значение... например какой-нибудь тот же текст.
есть знатоки или кто сталкивался с подобной задачей именно на lua?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 13:52
Сообщение #2


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Понадобится Lua socket

Код

--lua
local ltn12 = require('ltn12')
local https = require('ssl.https') -- для HTTPS
--local http = require('socket.http') -- для HTTP

local t = {}

local h, err = https.request{
      url = 'https://example.com',
      sink = ltn12.sink.table(t)
    }
log(table.concat(t))


Распаковаться рядом с exe пилота


Прикрепленные файлы
Прикрепленный файл  lua_socket.zip ( 2,73 мегабайт ) Кол-во скачиваний: 229
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 13:53
Сообщение #3


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 15:52) *

Понадобится Lua socket

Код

--lua
local ltn12 = require('ltn12')
local https = require('ssl.https') -- для HTTPS
--local http = require('socket.http') -- для HTTP

local t = {}

local h, err = https.request{
      url = 'https://example.com',
      sink = ltn12.sink.table(t)
    }
log(table.concet(t))



я так понимаю это вытасуивать и сохранять текст и уже в сохраненном тексте искать нужное значение/текст?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 13:57
Сообщение #4


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Цитата(yodich @ 6.4.2021, 13:53) *

я так понимаю это вытасуивать и сохранять текст и уже в сохраненном тексте искать нужное значение/текст?

Можно сохранять, можно сразу дернуть нужную инфу. Если у сайта с курсом есть api проще запросить через api.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 13:59
Сообщение #5


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 15:57) *

Можно сохранять, можно сразу дернуть нужную инфу. Если у сайта с курсом есть api проще запросить через api.


вот как раз сразу дернуть самое то... есть более подробная информация об этом что-бы почитать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 14:02
Сообщение #6


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



У сайта/сервиса должен быть свой api, формируешь конкретный запрос - получаешь конкретный ответ, но это есть далеко не везде, и читать тебе надо там от куда хочешь брать инфу.

В примере выше опечатка была, исправил.
Луа сокет в прикрепленном файле под пирмером
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 14:12
Сообщение #7


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 16:02) *

У сайта/сервиса должен быть свой api, формируешь конкретный запрос - получаешь конкретный ответ, но это есть далеко не везде, и читать тебе надо там от куда хочешь брать инфу.


ага, понял, спасибо за помощь =)


Цитата(Madeus @ 6.4.2021, 16:02) *

У сайта/сервиса должен быть свой api, формируешь конкретный запрос - получаешь конкретный ответ, но это есть далеко не везде, и читать тебе надо там от куда хочешь брать инфу.

В примере выше опечатка была, исправил.
Луа сокет в прикрепленном файле под пирмером


ошибку выдает при подключении:

a runtime error.
error loading module 'socket.core' from file '.\socket\core.dll':
%1 не является приложением Win32.

мы это уже решали и я помню, что все работало, но я Ваш файл залил и опять 25 началось
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 14:21
Сообщение #8


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Цитата(yodich @ 6.4.2021, 14:12) *

ага, понял, спасибо за помощь =)
ошибку выдает при подключении:

a runtime error.
error loading module 'socket.core' from file '.\socket\core.dll':
%1 не является приложением Win32.

мы это уже решали и я помню, что все работало, но я Ваш файл залил и опять 25 началось

У меня работает, раз уже решали, попробуй использовать тот который работал, если сокет уже был, можно не распаковывать мой.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 14:24
Сообщение #9


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 16:21) *

У меня работает, раз уже решали, попробуй использовать тот который работал, если сокет уже был, можно не распаковывать мой.


хеее, осталось только найти где я его в прошлый раз откопал)))
довольно странно почему у меня он начал показывать свои характер и меня аж бомбануло)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.4.2021, 14:25
Сообщение #10


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 16.971
Возраст: 29



Прикрепленный файл  http.zip ( 1,07 килобайт ) Кол-во скачиваний: 204

Архив распаковать в папку с пилотом.
Код
--lua
local h = require('http')

log 'clear' log 'mode compact'

local s = h.http('GET', 'cbr.ru', '')    -- получить содержимое страницы
local uds = s:match('USD.-(%d+,%d+)')  -- найти курс доллара
log('Курс доллара: ' .. tostring(uds))

local eur = s:match('EUR.-(%d+,%d+)')
log('Курс евро: ' .. tostring(eur))
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 14:27
Сообщение #11


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Цитата(cirus @ 6.4.2021, 14:25) *

Прикрепленный файл  http.zip ( 1,07 килобайт ) Кол-во скачиваний: 204

Архив распаковать в папку с пилотом.

С https работает?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 14:30
Сообщение #12


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(cirus @ 6.4.2021, 16:25) *

Прикрепленный файл  http.zip ( 1,07 килобайт ) Кол-во скачиваний: 204

Архив распаковать в папку с пилотом.
Код
--lua
local h = require('http')

log 'clear' log 'mode compact'

local s = h.http('GET', 'cbr.ru', '')    -- получить содержимое страницы
local uds = s:match('USD.-(%d+,%d+)')  -- найти курс доллара
log('Курс доллара: ' .. tostring(uds))

local eur = s:match('EUR.-(%d+,%d+)')
log('Курс евро: ' .. tostring(eur))



спасибо) https бы мне еще
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 14:31
Сообщение #13


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Цитата(yodich @ 6.4.2021, 14:24) *

хеее, осталось только найти где я его в прошлый раз откопал)))
довольно странно почему у меня он начал показывать свои характер и меня аж бомбануло)

Перенес на ноут, все работает

Видимо это https://forum.uokit.com/index.php?act=Attac...ost&id=3343
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 14:40
Сообщение #14


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 15:52) *

Понадобится Lua socket

Код

--lua
local ltn12 = require('ltn12')
local https = require('ssl.https') -- для HTTPS
--local http = require('socket.http') -- для HTTP

local t = {}

local h, err = https.request{
      url = 'https://example.com',
      sink = ltn12.sink.table(t)
    }
log(table.concat(t))


Распаковаться рядом с exe пилота



Довольно странно: я удалил lua файл и вставил старый и все заработало (ошибка пропала)

С твоим файлом lua выдает такую ошибку:
a runtime error.
C:***\socket.lua:42: attempt to call global 'newtry' (a nil value)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 14:48
Сообщение #15


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Цитата(yodich @ 6.4.2021, 14:40) *

Довольно странно: я удалил lua файл и вставил старый и все заработало (ошибка пропала)

С твоим файлом lua выдает такую ошибку:
a runtime error.
C:***\socket.lua:42: attempt to call global 'newtry' (a nil value)

Какой lua файл ты удалил?
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 14:56
Сообщение #16


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 16:48) *

Какой lua файл ты удалил?


а вот теперь не замарачивайся.
я щас ради прикола брал папку lua у тебя и старую со старым socket (когда обнаружили, что lua51 переименовать надо) и просто по 1 файлу кидал и смотрел подключение socket (local s = require ('socket')) и вуаля, волшнбным образом все заработало. НО если я беру всю папку lua и кидаю ее как обычно рядом с пилотом, то выдает ошибку (писал о ней выше). причина, если честно мне не понятна, но у меня проблема в итоге решена и твои файлы все рабочие 👍
не знаю, может у меня что-то не так...
просто пусть будет на заметку, может кому-то данный способ поможет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 15:04
Сообщение #17


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Там должны быть два файла lua51 и lua5.1 первый чтобы ssl работал
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 15:14
Сообщение #18


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Цитата(Madeus @ 6.4.2021, 17:04) *

Там должны быть два файла lua51 и lua5.1 первый чтобы ssl работал


Дак в том то и дело, что все было как надо... не знаю в чем была проблема если честно, но щас все заработало. Спасибо за помощь!)

задачу уже решил и все работает как часики��

даже благодаря этому в голову закралась одга идея которую попробую воплотить)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
yodich
сообщение 6.4.2021, 18:59
Сообщение #19


***

Novice
Сообщений: 90
Регистрация: 24.8.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.728
Возраст: 29



Это опять я. теперь столкнулся с такой проблемой: html страница отображается в ненужной кодировки. т.е. сохраняются русские символы в абракадабру. шурстил как в lua преобразовать нужную кодировку но что-то ничего путного не нашел.
кто с этим может помочь?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 6.4.2021, 21:20
Сообщение #20


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8423
Пользователь №: 19.451
Возраст: 32



Цитата(yodich @ 6.4.2021, 18:59) *

Это опять я. теперь столкнулся с такой проблемой: html страница отображается в ненужной кодировки. т.е. сохраняются русские символы в абракадабру. шурстил как в lua преобразовать нужную кодировку но что-то ничего путного не нашел.
кто с этим может помочь?

Ты страницу сохранаешь куда-то?
А можно пример? Проверю кое что мб и помогу
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 18.4.2024, 12:02
Designed by Nickostyle