Загрузите URL-адрес в безголовом браузере, чтобы получить его динамическое c содержимое, используя node js - PullRequest
0 голосов
/ 29 мая 2020

У меня есть приложение 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>

Посоветуйте, пожалуйста, мой подход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...