@ProLua

Страница 229 из 307
Vlad
07.02.2018
23:40:16
позволяет по быстрому работать рил тайм над кодом, рил диал но щит как грится, не понятно вроде только сколько максимум человек одновременно может работать над кодом, 3 точно а больше не знаю

Vlad
08.02.2018
00:08:37
мах, там эти бэтаверсии и танцы с бубном для пользования, нужно записи авторизации сканы члена \ влагалища (нужное подчеркнуть) почему нельзя дать возможность свободного пользования и просто собирать статистику, с виндой же вон нормально схема работает и тут чего

TheRainwildsKeeper
08.02.2018
07:10:12
Google
Pavel
08.02.2018
08:37:26
кто подскажет про регэсп. есть вот такая команда for div_content_index in div_index:gmatch("<div id=\"content\"(.-)</div>") do

парсю html

но она останавливается на вложенном </div>

а их там есть

как это обойти?

нужно чтобы захватывался полный блок div

Vasiliy
08.02.2018
08:40:59
https://stackoverflow.com/a/1732454

в кратце - не надо парсить html с помощью регэкспов

Pavel
08.02.2018
08:45:19
плохо...

а может можно как-то закостылить?

у меня простая страничка

Vasiliy
08.02.2018
08:54:21
библиотеки можно подключать? возьми какой-нибудь https://craigbarnes.gitlab.io/lua-gumbo/

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

Google
Vasiliy
08.02.2018
08:57:07
основания навроде таких, что сишные модули мешают подключать - эмбеддед, редкие платформы, кастомный интерпретатор

Pavel
08.02.2018
09:00:49
у меня один файл lua - он мелкий и грузится из C++ кода динамически

большие либы добавлять - их нужно тогда в один файл сливать

Ilya
08.02.2018
09:06:23
Подключи маленькую %)

https://github.com/leite/pumakira

А вообще это типичный случай, когда у человека есть проблема - он хочет решить ее с помощью регэкспов, и теперь у него две проблемы, лол.

Pavel
08.02.2018
10:31:18
? это точно

пока придумал один костыль - нашел на странице уникальный блок

по нему вырежу нужную часть

просто парсер ведь обрабатывает всю старницу - и жрет много ресурсов

а мне нужно из нее вырезать всего чуток

Snusmumriken
08.02.2018
11:02:32
Есть смешной варик, такой же как поиск скобочек: 1. Нашли div 2. Мотаем дальше, ищем новые открывающие и закрывающие div'ы. Когда находим открывающий - прибавляем к счётчику единичку, когда находим закрывающий - вычитаем ту же единичку. 3. Находим закрывающий div когда счётчик равен нулю? Вот типа и он.

Vadim
08.02.2018
11:48:16
кто подскажет про регэсп. есть вот такая команда for div_content_index in div_index:gmatch("<div id=\"content\"(.-)</div>") do
@pavel_pimenov https://github.com/msva/lua-htmlparser Мейнтейнер тут же у нас в чате был замечен

Pavel
08.02.2018
11:49:51
я смотрел этот парсер - но мен нужна локальная задачка. всю страницу разбирать не нужно

достаотчно вырезать определенную часть

пока подобрал вот такой костыль

function GetPage0(p_body) for q_table in p_body:gmatch("<table id=\"details\"(.-)</table>") do for ind in q_table:gmatch("<tr(.-)</tr>") do if ind then for td_index in ind:gmatch("<td?.-)</td>") do — for b_name in ind:gmatch("<b><u>О фильме:</u></b><br /?.-)<br />") do for b_name in ind:gmatch("</u></b><br /?.-)<br />") do print(b_name) end for b_index in td_index:gmatch("<b?.-)<br />") do print(b_index) end end — table.insert (mas, ("%sHEADER"):format(header_name)) — table.insert (glob_mas, mas) end end end return glob_mas end

русские буквы почему-то не пашут )

но без них тоже пока сойдет

я нашел в стринице уникальный кусок = где нет вложенныз div

Google
Vadim
08.02.2018
11:51:52
потому что кодировка страницы и твоего кода в редакторе различается.

Pavel
08.02.2018
11:52:24
возможно из-за кодировки...

счас попробую поправить

вообще я парсю вот такого типа страницы http://fast-bit.org/torrent/612124/zdravstvuj-papa-novyj-god!-2_daddys-home-2-2017-bdrip-ot-megapeer-itunes

там много мусора

а мне нужно то вытащить только описание киношек

тянуть полноценный парсер html я думаю тут лишнее?

страница у меня в utf а lua я пишу в 1251

переводить весь с крипт в utf ? а конкретно нельзя указать чтобы имено эта строка бралась в utf нельзя?

вот тут - for b_name in ind:gmatch("<b><u>О фильме:</u></b><br /?.-)<br />") do

Vadim
08.02.2018
11:59:11
Конвертируй файл в UTF-8 и всё. Луа разберет введенную строку побайтово, и вводи/ищи хоть эмоджи. 2) Да, тянуть парсер. Зачем: Они меняют пару div-ов и тебе надо перекостыливать пол скрипта. с htmlparser'ом ты за пару минут хоть новый сайт можешь добавить. И в зависимости от того, как напишешь (css selectors) у тебя может ничего не сломаться при изменении сайта

Pavel
08.02.2018
12:02:12
это треккер торрентов - им некогда менять в сайте ) div -они от блокировок бегают.

за год ничего не меняли в структуре

вот добавление нового - это да плюс

Tverd
08.02.2018
12:57:38
Кто хочет заработать? Люди готовы платить за биндинги к Godot I'll donate $1000 if someone has a working and fully documented binding for Lua.

https://godotdevelopers.org/forum/discussion/18552/if-someone-make-a-binding-to-luajit-for-godot-i-throw-a-lot-of-dollars-to-his-face

Elias
08.02.2018
13:11:25
Это довольно немного для такого проекта, на самом деле. Особенно учитывая то, что он просит полную документацию, ага ?

Tverd
08.02.2018
13:34:45
Дык никто и не говорит что этого на всю жизнь хватит ))))) Подзаработать )

К тому же реализованы биндинги к питону и ниму, думаю что не сильно сложно это реализовать для луа

Elias
08.02.2018
13:38:04
Возможно ? Самое страшное - возьмешься за это, а какой-нибудь индус или китаец за пару недель напишут...

Google
Snusmumriken
08.02.2018
13:41:53
Хех, неплохо. И на самом деле не очень сложно, просто очень муторно.

Elias
08.02.2018
13:43:46
Ага, вот то, что это займет очень много времени отталкивает в первую очередь.

Vitaly
08.02.2018
16:18:58
Привет! Может кто ткнуть на алгоритм для deep merge двух таблиц?

Evgeniy
09.02.2018
10:22:30
Заипало это навязывание яндекс-браузера. ФСБшный проект какой-то

Georgy
09.02.2018
10:23:09
попробуй Кок-Кок

mihacooper
09.02.2018
10:26:37
Заипало это навязывание яндекс-браузера. ФСБшный проект какой-то
cадись на Tor браузер и используй DuckDuckGo поиск)

Elias
09.02.2018
10:29:03
Скачивай страницы через wget и читай в emacs

Evgeniy
09.02.2018
10:29:20
Скачивай страницы через wget и читай в emacs
Я таких матюков даже не знаю, если честно ))

Elias
09.02.2018
10:31:10
?? Референс к тому, что Столлман как-то писал, что он так делает.

Aiwan ╭∩╮ (òÓ,) ╭∩╮
09.02.2018
10:47:23
Philipp
09.02.2018
18:05:31
https://i.imgur.com/JiTsZJG.png

0_o

3.2

Знает кто нормальную lz-декомпрессор?

Snusmumriken
09.02.2018
19:33:50
Тебе на pure-lua или ты можешь написать ffi-биндинг?

Блин, на самом деле где-то болтался, но глубоко закопан: копипастил код пачками, смотрел что работает.

Philipp
09.02.2018
20:39:48
Roman
09.02.2018
20:57:21
А насколько дорого пересечение ffi?

Snusmumriken
09.02.2018
20:58:28
Цена - отрицательна. Нужно только иметь нужную виртуальную машину/расширение.

Google
Roman
09.02.2018
21:30:11
Цена - отрицательна. Нужно только иметь нужную виртуальную машину/расширение.
я когда читал про luajit/ffi, там писалось что оно небесплатно

Snusmumriken
09.02.2018
21:30:42
Колбеки - небесплатные и довольно медленные, но тебе их надо использовать раз в тыщу лет под очень специфические вещи.

Roman
09.02.2018
21:30:47
мои наблюдения в pypy говорят о том же: 40ns vs 53ns на вызов ф-ии

Snusmumriken
09.02.2018
21:31:12
Хмм. Лады.

Snusmumriken
09.02.2018
21:32:24
Колбеки? Ты знаешь что это в данном контексте?

Это вызов lua-функций на сишной стороне. Типа знаешь? Передаёшь в сишную функцию указатель на луа-функцию, и она там типа дёргается с некоторой периодичностью. С какой частотой тебе нужно такое?

Snusmumriken
09.02.2018
21:34:56
Вот именно.



Вызов функций чуть сложнее, потому что разные функции сами по себе с разной скоростью работают, ща подберу что-нибудь.



Но в общем, суть ясна, надеюсь? Вызов сишной функции вообще не даёт оверхеда, инфа сотка. Функции стандартной библиотеки вызываются аналогичным образом. Все table.insert и print - это сишные функции. Ffi делает биндинг других сишных функций (какие ты хочешь) в себя. А вот сам по себе, сишный код быстрее, особенно на всяких deflate и прочих простых работах с буферами, поэтому цена - отрицательна. Луа, при работе со строками, создаёт кучу новых строк в строковом буфере, строки в луа - иммутабельны. А вот в сишке - простые массивы которые можно спокойно читать/изменять по одному символу. Прирост скорости чудовищный. Миллионы вызовов в секунду? За милую душу. http://luajit.org/ext_ffi.html

Страница 229 из 307