Page.exposeFunction() method | Puppeteer (pptr.dev)
Page.exposeFunction() method | Puppeteer
The method adds a function called name on the page's window object. When called, the function executes puppeteerFunction in node.js and returns a Promise which resolves to the return value of puppeteerFunction.
pptr.dev
Puppeteer에서 exposeFunction을 사용하면, 페이지의 window 객체에 함수를 추가하며, Node에서 함수를 실행하고, 반환된 값을 페이지에 전달하게 된다.
간단히 delay 하는 함수가 있을 때, 뭐 물론 evaluate에서 delay를 또 선언해서 사용해도 되지만,
// config.js
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
module.exports = {
delay
};
바로 exposeFunction으로 delay를 사용할 수 있게 끔 할 수 있다.
const puppeteer = require('puppeteer');
const { delay } = require('./config'); // config.js에서 delay 함수를 가져옴
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// exposeFunction을 사용하여 window 객체에 delay 함수 추가
await page.exposeFunction('delay', delay);
await page.evaluate(async () => {
// .. 크롤링 또는 일부 코드
await delay(3000);
});
await browser.close();
})();
그러....하다!

728x90
'Programming > puppeteer' 카테고리의 다른 글
Crawling (0) | 2024.05.04 |
---|---|
Puppeteer (0) | 2023.08.13 |