Я сделал этот пример для вас, чтобы улучшить. Он показывает распечатку информации внутри таблицы. Внутри цикла, повторяя каждый TH и TD и возвращая значение
Этот сценарий можно улучшить с помощью рефакторинга.
Ссылка онлайн-ответ: https://repl.it/@lucasferreirali/ExampleHelp
const fs = require("fs");
const cheerio = require("cheerio");
(async () => {
const page = fs.readFileSync("table.html", "utf8");
const $ = cheerio.load(page);
const info = $("table tbody");
info.each(function(i, element) {
console.log("###################################\n")
extractTR(this, i)
console.log("___________________________________\n")
});
function extractTR(el, i) {
let childrens = $(el).children()
childrens.each(function(t, item){
if(item.children && item.children.length > 0) {
console.log(extractText(item, t))
}
});
}
function extractText(el, i) {
let data = $(el).children(),
text = [],
type = [],
result
data.each(function(t, elm){
text[t] = $(elm).text().trim()
type[t] = $(elm).prop('tagName')
});
let [text_1, text_2] = text
let [first, second] = type
return result = first == "TD" && second == "TD" ? `${text_1}\n${text_2}` : `${text_1} ${text_2}`
}
})();