반응형
이 글은 세션 저장 및 로드 주제를 다루고 있습니다. 또는 로그인 후 쿠키를 저장하고 Puppeteer 세션이 종료된 후 쿠키를 다시 로드하는 것이 좋습니다. 이는 해당 문서에 다음 단계가 포함되어 있음을 의미합니다.
스크립트 알파:
- 페이지를 열고 웹 사이트에 로그인합니다.
- 쿠키를 json 파일에 저장하고 닫습니다.
스크립트 베타:
- 새 페이지를 엽니다.
- 이전 세션의 쿠키를 로드합니다.
- 로그인 후 원하는 페이지로 리디렉션합니다.
이 단계를 수행하려면 다음 스크립트를 따릅니다.
스크립트 알파의 코드:
const puppeteer = require(‘puppeteer’);
let browser = await puppeteer.launch({
headless: this.head,
args: [
‘ — no-sandbox’,
‘ — disable-setuid-sandbox’,
‘ — use-fake-ui-for-media-stream’,
‘ — disable-audio-output’,
‘ — disable-features=IsolateOrigins’,
‘ — disable-site-isolation-trials’,
],
});
let page = await browser.newPage();
await page.goto("https://www.ebay.com", {timeout: 500000});
// login procedure
await page.type("input#username", 'test@gmail.com');
await page.type("input#password", 'thisIsThePass0Wrd');
await page.click("div#loginButton");
await this.page.waitForTimeout(2000)
// save cookise:
const cookies = await page.cookies()
console.log("The cookies: ", cookies);
fs.writeFile(
'cookies.json',
JSON.stringify(cookies, null, 2),
function(err) {
if (err) throw err;
console.log('Write cookies complet');
}
);
browser.close();
이 스크립트를 실행한 후 페이지의 로그인이 트리거된 후 페이지의 저장된 쿠키를 포함하는 skookie.json 파일을 찾아야 합니다.
로그인 세션과 함께 페이지를 다시 로드하려면 다음을 사용하십시오.
const puppeteer = require(‘puppeteer’);
let browser = await puppeteer.launch({
headless: this.head,
args: [
‘ — no-sandbox’,
‘ — disable-setuid-sandbox’,
‘ — use-fake-ui-for-media-stream’,
‘ — disable-audio-output’,
‘ — disable-features=IsolateOrigins’,
‘ — disable-site-isolation-trials’,
],
});
let page = await browser.newPage();
// load the cookies from the file
const cookiesString = fs.readFileSync('./cookies.json', 'utf8');
const cookies = JSON.parse(cookiesString);
console.info("Google - Setting cookies")
await page.setCookie.apply(page, cookies);
// load the page you want to go to after the login
await page.goto("https://ebay.com/dashboard",{waitUntil: ['networkidle2']});
// here you can do what ever you want with the session the page will use the login sesseion
...
// When you are done just close the browser again.
await browser.close();
바로 그거야. 도움이 됐으면 좋겠네요 해피 코딩.
'javascript' 카테고리의 다른 글
React + RESTful API로 이메일 인증 구현 (0) | 2022.01.19 |
---|---|
만약 우리가 처리해야 할 약속이 여러 개 있다면요? (0) | 2022.01.19 |
자바스크립트 튜토리얼 2부 (0) | 2022.01.19 |
대규모 프런트 엔드 코드베이스에서 모든 i18n 키를 다시 쓰는 중 (0) | 2022.01.19 |
내 식료품 목록 및 식사 아이디어 앱: LISTLESS (0) | 2022.01.19 |
댓글