У меня есть приложение node js с одной домашней страницей. Эта домашняя страница будет динамически отображать содержимое с помощью API.
Чтобы повысить производительность, я не хочу вызывать каждый раз, когда пользователь запускает URL-адрес и выполняет вызов API для отображения содержимого. Вместо этого я хочу создать файл stati c с содержимым HTML и сохранить его в папке и отобразить, когда пользователь запускает URL-адрес.
Для этого сначала мне нужен безголовый браузер для загрузки URL-адреса и получения HTML, поместите содержимое в файл и сохраните как уникальный файл HTML (Fi2FEt1gM. html) в папке, используя node JS
. Я пытаюсь получить содержимое Dynami c HTML как показано ниже
Подход 1:
var http = require("http");
http.get('http://localhost:3001/Fi2FEt1gM', function(res){
res.setEncoding('utf8');
res.on('data', function(chunk){
console.log(chunk);
});
});
Подход 2:
const puppeteer = require('puppeteer');
(async () => {
try {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://localhost:3001/Fi2FEt1gM');
await page.waitForSelector('html', { timeout: 3000 });
const body = await page.evaluate(() => {
return document.querySelector('body').innerHTML;
});
console.log(body);
await browser.close();
} catch (error) {
console.log(error);
}
})();
При всем подходе я всегда получить stati c HTML not Dynami c content. Мой контент для очистки будет выглядеть следующим образом:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="author" content="">
....
</head>
<body>
<div class='wrapper'>
<div class="container">
Loading...
<-- DYNAMIC CONTENT --->
</div>
</div>
</body>
</html>
Посоветуйте, пожалуйста, мой подход