Показать сообщение отдельно
  #12 (permalink)  
Старый 21.08.2019, 00:06
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

laimas, для этого лучше использовать DOMParser
var doc = new DOMParser().parseFromString(`<html>
<head>
</head>
<body>
<div><p>Text <span>text/span></p></div>
</body>
</html>`, "text/html");

console.log(doc.querySelector('div'));


Сообщение от Роман Андреевич
парюсь с регулярками, прошу помощи
Используйте вместо этого DOMParser

Сообщение от Роман Андреевич
стандартными методами не могу потому что это со стороны сервера происходит на node.js
Там работает точно такое же ядро JS.

Сообщение от Роман Андреевич
Поэтому регуляркой надо получить содержимое.
Я вам для этого рекомендую использовать DOMParser, таким образом вы сможете работать с документом, как с объектом DOM.

DOMParser доступен во всех браузерах, также есть реализация для node.js

Сообщение от Роман Андреевич
надо из него вырезать все, вокруг тега main, т.е. остается только <main>
Сообщение от Роман Андреевич
нужно получить то что я выделил дефисами в коде (т. е. элемент, подходящий под селектор .ticket-box.ticket-box-c2)
var doc = new DOMParser().parseFromString(`<html><body><main>код, полученный каким угодно способом</html>`, "text/html");

var node = doc.querySelector("main, .ticket-box.ticket-box-c2"); // выбирай нужный элемент
console.log(node.outerHTML); // и покажи его код, например, в консоли


Чтобы использовать DOMParser в node.js его нужно установить в проект пакет jsdom (npm i jsdom) и импортировать (const { JSDOM } = require("jsdom");
const { DOMParser } = new JSDOM().window; )

Т. е. тот же самый пример для node.js выглядит так (добавлены первые две строчки)
const { JSDOM } = require("jsdom")
const { DOMParser } = new JSDOM().window;

var doc = new DOMParser().parseFromString(`<html><body><main>код, полученный каким угодно способом</html>`, "text/html");

var node = doc.querySelector("main, .ticket-box.ticket-box-c2"); // выбирай нужный элемент
console.log(node.outerHTML); // и покажи его код, например, в консоли

Последний раз редактировалось Malleys, 21.08.2019 в 00:29.
Ответить с цитированием