@Apstrew

Как использовать браузерный скрипт с WebAPI на локальном HTML-файле с помощью node.js?

У меня есть код который работает в браузере: cниппет на JSfiddle https://jsfiddle.net/c3tkpsrq - он берёт там же загруженный html и превращает в json,

Как запустить этот же код на node.js?

В коде используется WebAPI, поэтому если просто скопипастить код и запустить в node.js, то естественно следующие участки кода работать не будут:

const dom = document.body;
if (node instanceof HTMLHeadingElement

При этом, вместо того чтоб загружать html в поле html на JSfiddle я хочу пройтись данным скриптом по нескольким локальным HTML файлам, доступ к которым я делаю следующим образом:

fs.readdir('output/', (err, files) => {
  files.forEach(file => {
    if (path.extname(file) === '.html') {
      fs.readFile('folder/'+file, 'utf8', function(err, data) {
              console.log(data) //выдаёт правильный html, такой же как исходный в сниппете
    });
}
})
})


Пробовал jsdom, но node instanceof HTMLParagraphElement всё равно не работает. Puppeteer тоже пробовал, но получаю ошибки которые не знаю как дебажить, видимо неправильно я им пользуюсь.

Спасибо!
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
Fzero0
@Fzero0
Вечный студент
const fs = require('fs');
const path = require('path');
const HTMLParser = require('node-html-parser');

const folderPath = 'html'

fs.readdirSync(folderPath).map(fileName => {
  
  fs.readFile(path.join(folderPath, fileName), 'utf8', function(err, html){

  	const root = HTMLParser.parse(html);
 
    console.log(root.querySelector('h2').rawText);

  });
 
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы