Lua + HTML

NoN4m3

Участник
Автор темы
78
5
Версия MoonLoader
.026-beta
К примеру есть страница в интернете, с неё мне нужно вытащить текст, пример:


HTML:
код страницы
<p class="info">Today last exam</p>
код страницы

Как мне вытащить этот текст?
 

Dark_Knight

Me, me and me.
Друг
4,085
2,114
пхпххпх, я то понимаю, но я почитал разные темы и ни ху я не понял
Хз. Не читал не одной темы, взял gumbo-parser(Правда это для плюсов), посмотрел немного примеро и примерно понял как вытягивать, что мне нужно со статических данных страниц.
Lua:
local request = require 'requests'

function get()
    local result, response = pcall(request.get, "ссылка на сайт с этим текстом")
    if result then
        local resp = response.text
        local text = resp:match('<p class="info">(.+)</p>')
        print(text)
    end
end
Ты меня извини, но лучше эму дать то чего он хочет. Вдруг это он уже умеет, но это эму не подходит. Я тоже разок думал вытяну регуляркой текст со страницы. но понял, что это была плохая затея.
 

Dmitriy Makarov

25.05.2021
Проверенный
2,505
1,134
Хз. Не читал не одной темы, взял gumbo-parser(Правда это для плюсов), посмотрел немного примеро и примерно понял как вытягивать, что мне нужно со статических данных страниц.

Ты меня извини, но лучше эму дать то чего он хочет. Вдруг это он уже умеет, но это эму не подходит. Я тоже разок думал вытяну регуляркой текст со страницы. но понял, что это была плохая затея.
Код:
[ML] (script) testscript.lua: Вопросы
Lua:
function get()
    local result, response = pcall(request.get, "https://www.blast.hk/forums/163/")
    if result then
        local resp = response.text
        local text = resp:match('<h1 class="p%-title%-value">(.+)</h1>')
        print(u8:decode(text))
    end
end
Screenshot_1.png

Хз, у меня получилось
 
  • Нравится
Реакции: Ivkide и NoN4m3

NoN4m3

Участник
Автор темы
78
5
Lua:
local request = require 'requests'

function get()
    local result, response = pcall(request.get, "ссылка на сайт с этим текстом")
    if result then
        local resp = response.text
        local text = resp:match('<p class="info">(.+)</p>')
        print(text)
    end
end

У меня почему-то дальше проверки на результат не заходит.
Код:
[ML] (script) testscript.lua: Вопросы
Lua:
function get()
    local result, response = pcall(request.get, "https://www.blast.hk/forums/163/")
    if result then
        local resp = response.text
        local text = resp:match('<h1 class="p%-title%-value">(.+)</h1>')
        print(u8:decode(text))
    end
end
Посмотреть вложение 54166
Хз, у меня получилось

Попробовал этот код, всё работает, но только есть одно НО, выводит символы, а u8:decode не помогает, луа крашится
 
Последнее редактирование:

NoN4m3

Участник
Автор темы
78
5
В начало кода
Lua:
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
Спасибо
Lua:
local request = require 'requests'

function get()
    local result, response = pcall(request.get, "ссылка на сайт с этим текстом")
    if result then
        local resp = response.text
        local text = resp:match('<p class="info">(.+)</p>')
        print(text)
    end
end
Возникла проблема, на сайте не один тэг <p> и скрипт копирует всё от тэга <p> с моим классом до последнего тэга </p> и всё что было между ними (пол сайта) оно мне берёт и выводит
 
Последнее редактирование:

Quasper

Известный
835
354
первая строка - количество найденных сообщений по классу bbWrapper
вторая строка - неформатированный текст второго сообщения(труда не составит из него вытащить нормальный текст регуляркой)
1587629595589.png

сама либа и документация к ней
 
  • Нравится
Реакции: Dark_Knight