File size: 1,040 Bytes
f6f0c71 a05f12d f6f0c71 3a46f5b f6f0c71 a05f12d f6f0c71 c9bbadf f6f0c71 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import puppeteer from 'puppeteer'
import { executablePath } from 'puppeteer';
class PuppeteerSg {
constructor() {
if (!PuppeteerSg.instance) {
PuppeteerSg.instance = this;
process.on('exit', () => {
this.close();
});
}
return PuppeteerSg.instance;
}
/**
* Launch a browser
*/
async launch() {
console.log("EXECUTE" + executablePath())
this.browser = await puppeteer.launch({
headless: "new",
defaultViewport: null,
args: ["--no-sandbox"],
executablePath: executablePath()
});
}
/**
* New a page
* @param {string} url
* @returns
*/
async getPage(url) {
if (!this.browser) {
await this.launch()
}
let page = await this.browser.newPage()
await page.goto(url, {
waitUntil: "load",
})
return page
}
/**
* Close the browser
*/
async close() {
if (this.browser) {
await this.browser.close();
this.browser = null;
}
}
}
export const puppeteerSg = new PuppeteerSg()
|