page.evaluate 함수(puppeteer)

이태혁·2020년 9월 17일
0
const scoreEl = await page.$('.score.score_left .star_score'); // TODO: 바로 evaluate 하는 방식도 알려주기
if (scoreEl) {
  const text = await page.evaluate(element => element.textContent, scoreEl);
}

위 코드처럼 page.();로선택자를지정하고page.evaluate안에2번째인자로넣어줄수있지만이렇게되면선택자가여러개가될때너무불편해진다이방식보다는아래처럼page.(); 로 선택자를 지정하고 page.evaluate안에 2번째 인자로 넣어줄수 있지만 이렇게 되면 선택자가 여러개가 될때 너무 불편해진다 이 방식보다는 아래처럼 page.()를 사용하지 않고
evaluate만을 사용한다.(2번째 인자 없음)
이렇게해서 $()대신 document.queryselector를 사용하면 된다. 여러 선택자를 써야하는 경우도 밑에 적어주면 된다. 이렇게 해서 return 해준값을 변수(score)에 저장하면 된다.

const text = await page.evaluate(() => {
  const score = document.queryselector('.score.score_left .star_score');
  if (score) {
    return score.textcontent
  }
})
profile
back-end, cloud, docker, web의 관심이 있는 예비개발자입니다.

0개의 댓글