Puppeteer를 사용하기 위해 나는 npm으로 사용한다.
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