CircleCI에서 Puppeteer 정기 실행
개요
병아리 만들기
mkdir puppeteer-sample
cd puppeteer-sample
yarn init -y
# or
npm init -y
Puppeteer 소개
설치
yarn add puppeteer
# or
npm i puppeteer
샘플 만들기
htps : //에서 ゔぇぺぺrs. 오, ぇ. 코m/우ぇb/ 중에서
Headless Chrome
태그가 달린 기사를 추출하는 샘플 sample.js
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://developers.google.com/web/');
// Type into search box.
await page.type('#searchbox input', 'Headless Chrome');
// Wait for suggest overlay to appear and click "show all results".
const allResultsSelector = '.devsite-suggest-all-results';
await page.waitForSelector(allResultsSelector);
await page.click(allResultsSelector);
// Wait for the results page to load and display the results.
const resultsSelector = '.gsc-results .gsc-thumbnail-inside a.gs-title';
await page.waitForSelector(resultsSelector);
// Extract the results from the page.
const links = await page.evaluate(resultsSelector => {
const anchors = Array.from(document.querySelectorAll(resultsSelector));
return anchors.map(anchor => {
const title = anchor.textContent.split('|')[0].trim();
return `${title} - ${anchor.href}`;
});
}, resultsSelector);
console.log(links.join('\n'));
await browser.close();
})();
CircleCI 설정
.circleci/config.yml
version: 2
jobs:
execute:
docker:
- image: circleci/node:latest-browsers
steps:
- checkout
- run: yarn install
- run: node sample.js
workflows:
version: 2
execute-workflow:
triggers:
- schedule:
cron: '0 0,6,12,18 * * *' # UTC
filters:
branches:
only:
- master
jobs:
- execute
circleci/node:latest-browsers
를 지정하면 이것만으로 Puppeteer가 움직였다 0 */6 * * *
같은 글을 쓰면 오류가 발생하고 조금 빠졌습니다 실행
Reference
이 문제에 관하여(CircleCI에서 Puppeteer 정기 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ozaki25/items/cea8511629fe8d71ec6b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)