Size: a a a

Node.js — русскоговорящее сообщество

2020 April 08

RB

Random Balance in Node.js — русскоговорящее сообщество
Artem Soroka
Селекторы куда удобнее, чем копаться в childnodes
Так там тоже есть селекторы.
источник

B

Bat in Node.js — русскоговорящее сообщество
Envy
Не поделитесь материалами для изучения?
ну стартануть можно с https://www.w3schools.com/xml/xpath_syntax.asp

Да и проще из браузера скопировать xpath до элемента и самому разобрать. Далее просто берете html, абсолютно на любом языке ищете как сделать из него dom object, и через xpath query вытаскиваете инфу.
Особенно удобно когда делаешь админку для нескольких парсеров, иногда человек может поправить правило без участия проггера
источник

AS

Artem Soroka in Node.js — русскоговорящее сообщество
Random Balance
Так там тоже есть селекторы.
Да, есть, но мне в тот момент нужно было что то такое
div.green > td.blue > input[name=email]
Поэтому взял cheerio
источник

E

Envy in Node.js — русскоговорящее сообщество
Bat
ну стартануть можно с https://www.w3schools.com/xml/xpath_syntax.asp

Да и проще из браузера скопировать xpath до элемента и самому разобрать. Далее просто берете html, абсолютно на любом языке ищете как сделать из него dom object, и через xpath query вытаскиваете инфу.
Особенно удобно когда делаешь админку для нескольких парсеров, иногда человек может поправить правило без участия проггера
Благодарю 🙏
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Bat
Я вот немного изучил xpath и вертел я ваши библиотеки для парсинга)
XPath это круто. Но внутри такой же парсер будет. Он же не магическим образом данные извлекает.
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Envy
Не поделитесь материалами для изучения?
Вот ещё удобная cheatsheet - https://devhints.io/xpath.
источник

E

Envy in Node.js — русскоговорящее сообщество
Благодарю Вас
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Bat
Я вот немного изучил xpath и вертел я ваши библиотеки для парсинга)
Кстати, какую либу используешь?
источник

И

Илья | 😶 in Node.js — русскоговорящее сообщество
Ману
я тут подумываю получить фото в base64 формате, из него сделать полноценный img файл, а потом его сжать и вернуть в base64 уже сжатым
и шо мешает ?
источник

E

Envy in Node.js — русскоговорящее сообщество
Random Balance
Кстати, какую либу используешь?
Если я правильно понимаю, cheerio тоже позволяет обращаться к xpath?
источник

B

Bat in Node.js — русскоговорящее сообщество
Random Balance
Кстати, какую либу используешь?
да просто xmldom и xpath если ты про ноду)
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Ману
не подскажете насколько это ужасно?
Картинки ты не сожмёшь, они (обычно) уже сжаты.
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Envy
Если я правильно понимаю, cheerio тоже позволяет обращаться к xpath?
Вроде нет. Я вообще под ноду не смог найти норм либу.
источник

М

Ману in Node.js — русскоговорящее сообщество
Random Balance
Картинки ты не сожмёшь, они (обычно) уже сжаты.
Хммммммммм, проверю ок. Спс
источник

E

Envy in Node.js — русскоговорящее сообщество
Random Balance
Вроде нет. Я вообще под ноду не смог найти норм либу.
Звучит грустно
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Bat
да просто xmldom и xpath если ты про ноду)
А невалидный HTML разбирает?
источник

B

Bat in Node.js — русскоговорящее сообщество
Random Balance
XPath это круто. Но внутри такой же парсер будет. Он же не магическим образом данные извлекает.
я не спорю, и даже возможно писал бы в ООП стиле что-то небольшое. Но там где нужна админка и возможность поменять правила проще работать с xpath
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
А, она вообще в HTML не может похоже.
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
Artem Soroka
Производительность не основной показатель парсера, не хочется терять удобство и читаемость ради пары милисекунд, которые теряются на фоне времени загрузки html
Кстати, насчёт "пары мс".
example.html:

cheerio:
> 325.10 ms

node-html-parser:
> 77.96 ms

273112 страниц * 313.73 мс = 85683427 мс = 1428 минут ~ 24 часа
273112 страниц * 62.32 мс = 17020339 мс = 283 минуты ~ 5 часов
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Random Balance
Кстати, насчёт "пары мс".
example.html:

cheerio:
> 325.10 ms

node-html-parser:
> 77.96 ms

273112 страниц * 313.73 мс = 85683427 мс = 1428 минут ~ 24 часа
273112 страниц * 62.32 мс = 17020339 мс = 283 минуты ~ 5 часов
добавить бы еще сюда парсеры на компилируемых языках
источник