Skip to content

Instantly share code, notes, and snippets.

@jongpak
Last active January 4, 2020 07:01
Show Gist options
  • Save jongpak/5cd7c4aec6da3c92d021b4efa02acd11 to your computer and use it in GitHub Desktop.
Save jongpak/5cd7c4aec6da3c92d021b4efa02acd11 to your computer and use it in GitHub Desktop.
puppeteer - single browser / multiple context
const Puppeteer = require('puppeteer');
(async function() {
// run chromium
const browser = await Puppeteer.launch({
headless: false,
defaultViewport: {
isMobile: true,
width: 375,
height: 768,
},
args: ['--window-size=375,768']
});
// parallel navigate
await Promise.all([
goPage(browser, 'NEWS'),
goPage(browser, 'ENT'),
goPage(browser, 'SPORT'),
goPage(browser, 'SHOPPING'),
goPage(browser, 'MYFEED'),
]);
// close chromium (if you want to re-use previous browser, don't close() and connect to wsEndpoint)
await browser.close();
})();
/**
* create new context and goto page
*
* @param {Puppeteer.Browser} browser
*/
async function goPage(browser, panel) {
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();
await page.setCookie({name: 'MM_m', value: panel, domain: 'm.naver.com' });
await page.goto('https://m.naver.com');
await context.close();
console.log(`${panel} crawling finish`);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment