Skip to content

Instantly share code, notes, and snippets.

@princePeterHansen
Created February 10, 2020 21:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save princePeterHansen/1353d54a21468a883374f0b24a0ab290 to your computer and use it in GitHub Desktop.
Save princePeterHansen/1353d54a21468a883374f0b24a0ab290 to your computer and use it in GitHub Desktop.
const puppeteer = require('puppeteer');
const express = require('express');
const app = express();
const port = 3000;
app.get('/', async (req, res) => {
const {url} = req.query;
if(!url) {
res.status(400).send("Bad request: 'url' param is missing!");
return;
}
try {
const html = await getPageHTML(url);
res.status(200).send(html);
} catch (error) {
res.status(500).send(error);
}
});
const getPageHTML = async (pageUrl) => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(pageUrl);
const pageHTML = await page.evaluate('new XMLSerializer().serializeToString(document.doctype) + document.documentElement.outerHTML');
await browser.close();
return pageHTML;
}
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
@princePeterHansen
Copy link
Author

Dependencies:
npm install express
npm install puppeteer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment