page.evaluate 함수(puppeteer)

taelee·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.$()를 사용하지 않고
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개의 댓글