1. 운용환경
2. 설치 및 설정
- 초기화
$ $npm init -y
Wrote to d:\pcloud\dev\pub7-governup\tools\newsletter\package.json:
{
"name": "newsletter",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs"
}
- 라이브러리 설치
$ npm install puppeteer
added 65 packages, and audited 66 packages in 41s
6 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
- 스크립트 소스
// *.js
// import puppeteer module;
import puppeteer from 'puppeteer';
// Launch the browser and open a new blank page.
const browser = await puppeteer.launch(); // puppeteer 실행
const page = await browser.newPage(); // 새 페이지 생성
// Navigate the page to a URL.
await page.goto('https://developer.chrome.com/'); // url로 이동
// Set the screen size.
await page.setViewport({width: 1080, height: 1024}); // 화면 사이즈
// Open the search menu using the keyboard.
await page.keyboard.press('/'); // 키보드 입력으로 검색 메뉴 열기
// Type into search box using accessible input name.
await page.locator('::-p-aria(Search)').fill('automate beyond recorder'); // 접근성 이름을 이용해 검색창에 텍스트 입력
// Wait and click on first result.
await page.locator('.devsite-result-item-link').click(); // 검색 결과 첫 번째 항목 클릭
// Locate the full title with a unique string.
const textSelector = await page
.locator('::-p-text(Customize and automate)')
.waitHandle();
const fullTitle = await textSelector?.evaluate(el => el.textContent); // 특정 텍스트가 포함된 요소를 찾고 대기
// Print the full title.
console.log('The title of this blog post is "%s".', fullTitle); // 찾은 요소의 텍스트 내용을 가져오기
await browser.close(); // 브라우저 종료
- 실행
$ node *.js
【참고자료】