- Мне нужно отобразить html версию веб-сайта (ftmarket, morningstar ..) на моем сервере, чтобы собрать информацию на нем с помощью листа Google (= ИМПОРТ HTML (B3; "таблица") ; 28)).
1 / i go на мой сервер с этим URL http://myserver.com?url=https: // www.morningstar.com/stocks/xpar/nk/valuation 2 / Nodejs получить переменную URL 3 / Puppeteer go на веб-сайт и напишите html версию веб-сайта на моем сервере (индекс. html) 4 / i показать эту версию на моем сервере через 15 секунд
- я не могу выполнить шаг 4. Я не знаю, как заставить nodejs отображать индекс. html после записи кукловода html версия
- Можно ли отобразить html версия без записи на моем сервере?
- Знаете ли вы более быстрый способ удаления информации из URL, например "https://www.morningstar.com/stocks/xpar/nk/valuation" на листе Google?
// server.js
const express = require('express');
const puppeteer = require('puppeteer');
const fs = require("fs");
const app = express();
const path = require('path');
const router = express.Router();
// CAPTURE URL /?url=https://google.com
app.get('/', async (req, res) => {
const{url} = req.query;
if (!url || url.length === 0) {
return res.json({error: 'url query parameter is required'});
}
console.log(url);
run(url);
}
);
async function run(url) {
const browser = await puppeteer.launch({args: ['--no-sandbox']});
const page = await browser.newPage();
await page.goto(url, {waitUntil: 'networkidle0', timeout: 0})
// await page.goto('https://www.ebay.com/');
await page.waitFor(15000);
const html = await page.content();
fs.writeFileSync("index.html", html);
// await page.goto('about:blank')
return html;
page.close();
browser.close();
//browser.disconnect();
// await process.exit(0);
//app.close();
server();
};
function server() {
const html = await run(url);
router.get('/',function(req,res){
res.sendFile(path.join(__dirname+'/index.html'));
//__dirname : It will resolve to your project folder.
});
router.get('/about',function(req,res){
res.sendFile(path.join(__dirname+'/about.html'));
});
router.get('/sitemap',function(req,res){
res.sendFile(path.join(__dirname+'/sitemap.html'));
});
//add the router
app.use('/', router);
//app.listen(process.env.PORT || 3000);
res.send(html);
}
app.listen(process.env.PORT || 3000);
спасибо