Puppeteer(웹 브라우저 자동화) 시험해보기

Jaehoon Jung·2023년 5월 9일
0

Puppeteer

목록 보기
2/3

Puppeteer를 사용하기 위해 나는 npm으로 사용한다.

  1. npm init
  2. npm i puppeteer
  3. test.js 파일을 생성한다.
  4. 코드작성
const puppeteer = require('puppeteer');

(async () => {
    console.info('시작~!');
    console.info('퍼펫티어', puppeteer);
    const browser = await puppeteer.launch({
        // 브라우저 만들어보기
        headless: false,
        args: ['--window-size=1920,1080'], // 사이즈
        slowMo: 30, // 자동화시스템이라 너무 빨리 될 수 있기때문에 느리게 해주기위함.
    });
    const page = await browser.newPage();

    await page.setViewport({
        width: 1920,
        height: 1080,
    });

    await Promise.all([
        page.goto('http://www.naver.com'),
        page.waitForNavigation(), // 다 로딩이 될때까지 기다려라.
    ]);
    //Xpath문법
    let target = "//span[text()='쇼핑']/ancestor::a";
    await page.waitForXPath(target); //default 30초기다려줌.
    let s = await page.$x(target); // Xpath 파라메터를 찾아서 리턴함.
    s = s[0];

    await Promise.all([
        await s.click(),
        page.waitForNavigation(), // 다 로딩이 될때까지 기다려라.
    ]);

    target = "//ul[@id='categoryListPage1']/li/button";
    await page.waitForXPath(target);
    let arr = await page.$x(target);

    for (item of arr) {
        const value = await item.evaluate((el) => el.textContent);
        console.info('value', value);
    }

    // 타이핑하기.
    target = "//input[@title='검색어 입력']";
    s = await page.$x(target);
    s = s[0];
    await s.type('핫한 아이템 찾아줘');
    await new Promise((resolve) => setTimeout(resolve, 3000));
    await page.close();
})();



xpath의 문법은 아래 사이트를 참고하면 좋다.
구글검색창에 xpath guru99 하거나 아래 링크
https://www.guru99.com/xpath-selenium.html

하면 naver가 켜진다.
selectorshub 구글 크롬확장 프로그램에서 다운받는다.
그걸로 XPath문법을 사용해서 하면 된다.
타켓값을 래퍼런스에서 가져왔는데 래퍼런스가 예전꺼라 안되는것같다. 사용하는 프로세스만 이해하면 된다.
래퍼런스:https://www.youtube.com/watch?v=oMPbYXxD-Lg

profile
보노보노는 사랑입니다.

0개의 댓글