Google 근사한 Chrome 조작 라이브러리 Puppeteer를 사용해 보았습니다.
Puppeteer란?
GoogleChrome에서 제공하는 Chrome에서 사용할 수 있는 Node.js 라이브러리
GoogleChrome/puppeteer: Headless Chrome Node API
디폴트는 헤드리스 브라우저이지만, 설정으로 해제할 수 있다.
puppet (조종 인형)처럼 Chrome을 조작.
install
$ node -v
v10.11.0
$ npm i puppeteer
$ npm ls puppeteer
...
└── [email protected]
스크린샷 가져오기
// screen_shot.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
node screen_shot.js
결과
웹 화면의 PDF 생성
// create_pdf.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'create_pdf_sample.pdf', format: 'A4'});
await browser.close();
})();
node create_pdf.js
결과
GitHub 로그인
// ログイン情報を書いたファイルを準備
// $ cat creds.js
module.exports = {
username: 'USERNAME',
password: 'PASSWORD'
}
// ログイン処理本体
// $ cat github_login.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false // 今回はあえてヘッドレスを解除して起動
});
const page = await browser.newPage();
await page.goto('https://github.com/login');
// github.com DOM要素セレクタ
const USERNAME_SELECTOR = '#login_field';
const PASSWORD_SELECTOR = '#password';
const BUTTON_SELECTOR = '#login > form > div.auth-form-body.mt-3 > input.btn.btn-primary.btn-block';
// ログイン情報の読み込み
const CREDS = require('./creds');
// セレクタをクリックして、ログイン情報をタイプ入力
await page.click(USERNAME_SELECTOR);
await page.keyboard.type(CREDS.username);
await page.click(PASSWORD_SELECTOR);
await page.keyboard.type(CREDS.password);
// ログインボタンをクリック
await page.click(BUTTON_SELECTOR);
await page.waitForNavigation();
})();
// ファイルを実行するとChromeが起動して処理を実行。
node github_login.js
명령 실행 후 화면 동작
참조
그 외 샘플이 다수 이하에 게재되어 있으므로 참고가 된다.
checkly/puppeteer-examples: Puppeteer example scripts for running Headless Chrome from Node. Run them at https://puppeteersandbox.com
Reference
이 문제에 관하여(Google 근사한 Chrome 조작 라이브러리 Puppeteer를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaeken1jp/items/829073a8d548f187eac2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ node -v
v10.11.0
$ npm i puppeteer
$ npm ls puppeteer
...
└── [email protected]
스크린샷 가져오기
// screen_shot.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
node screen_shot.js
결과
웹 화면의 PDF 생성
// create_pdf.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'create_pdf_sample.pdf', format: 'A4'});
await browser.close();
})();
node create_pdf.js
결과
GitHub 로그인
// ログイン情報を書いたファイルを準備
// $ cat creds.js
module.exports = {
username: 'USERNAME',
password: 'PASSWORD'
}
// ログイン処理本体
// $ cat github_login.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false // 今回はあえてヘッドレスを解除して起動
});
const page = await browser.newPage();
await page.goto('https://github.com/login');
// github.com DOM要素セレクタ
const USERNAME_SELECTOR = '#login_field';
const PASSWORD_SELECTOR = '#password';
const BUTTON_SELECTOR = '#login > form > div.auth-form-body.mt-3 > input.btn.btn-primary.btn-block';
// ログイン情報の読み込み
const CREDS = require('./creds');
// セレクタをクリックして、ログイン情報をタイプ入力
await page.click(USERNAME_SELECTOR);
await page.keyboard.type(CREDS.username);
await page.click(PASSWORD_SELECTOR);
await page.keyboard.type(CREDS.password);
// ログインボタンをクリック
await page.click(BUTTON_SELECTOR);
await page.waitForNavigation();
})();
// ファイルを実行するとChromeが起動して処理を実行。
node github_login.js
명령 실행 후 화면 동작
참조
그 외 샘플이 다수 이하에 게재되어 있으므로 참고가 된다.
checkly/puppeteer-examples: Puppeteer example scripts for running Headless Chrome from Node. Run them at https://puppeteersandbox.com
Reference
이 문제에 관하여(Google 근사한 Chrome 조작 라이브러리 Puppeteer를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaeken1jp/items/829073a8d548f187eac2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// screen_shot.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
node screen_shot.js
// create_pdf.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({path: 'create_pdf_sample.pdf', format: 'A4'});
await browser.close();
})();
node create_pdf.js
결과
GitHub 로그인
// ログイン情報を書いたファイルを準備
// $ cat creds.js
module.exports = {
username: 'USERNAME',
password: 'PASSWORD'
}
// ログイン処理本体
// $ cat github_login.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false // 今回はあえてヘッドレスを解除して起動
});
const page = await browser.newPage();
await page.goto('https://github.com/login');
// github.com DOM要素セレクタ
const USERNAME_SELECTOR = '#login_field';
const PASSWORD_SELECTOR = '#password';
const BUTTON_SELECTOR = '#login > form > div.auth-form-body.mt-3 > input.btn.btn-primary.btn-block';
// ログイン情報の読み込み
const CREDS = require('./creds');
// セレクタをクリックして、ログイン情報をタイプ入力
await page.click(USERNAME_SELECTOR);
await page.keyboard.type(CREDS.username);
await page.click(PASSWORD_SELECTOR);
await page.keyboard.type(CREDS.password);
// ログインボタンをクリック
await page.click(BUTTON_SELECTOR);
await page.waitForNavigation();
})();
// ファイルを実行するとChromeが起動して処理を実行。
node github_login.js
명령 실행 후 화면 동작
참조
그 외 샘플이 다수 이하에 게재되어 있으므로 참고가 된다.
checkly/puppeteer-examples: Puppeteer example scripts for running Headless Chrome from Node. Run them at https://puppeteersandbox.com
Reference
이 문제에 관하여(Google 근사한 Chrome 조작 라이브러리 Puppeteer를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kaeken1jp/items/829073a8d548f187eac2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// ログイン情報を書いたファイルを準備
// $ cat creds.js
module.exports = {
username: 'USERNAME',
password: 'PASSWORD'
}
// ログイン処理本体
// $ cat github_login.js
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false // 今回はあえてヘッドレスを解除して起動
});
const page = await browser.newPage();
await page.goto('https://github.com/login');
// github.com DOM要素セレクタ
const USERNAME_SELECTOR = '#login_field';
const PASSWORD_SELECTOR = '#password';
const BUTTON_SELECTOR = '#login > form > div.auth-form-body.mt-3 > input.btn.btn-primary.btn-block';
// ログイン情報の読み込み
const CREDS = require('./creds');
// セレクタをクリックして、ログイン情報をタイプ入力
await page.click(USERNAME_SELECTOR);
await page.keyboard.type(CREDS.username);
await page.click(PASSWORD_SELECTOR);
await page.keyboard.type(CREDS.password);
// ログインボタンをクリック
await page.click(BUTTON_SELECTOR);
await page.waitForNavigation();
})();
// ファイルを実行するとChromeが起動して処理を実行。
node github_login.js
그 외 샘플이 다수 이하에 게재되어 있으므로 참고가 된다.
checkly/puppeteer-examples: Puppeteer example scripts for running Headless Chrome from Node. Run them at https://puppeteersandbox.com
Reference
이 문제에 관하여(Google 근사한 Chrome 조작 라이브러리 Puppeteer를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaeken1jp/items/829073a8d548f187eac2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)