강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

Simple님의 프로필 이미지
Simple

작성한 질문수

Node.js로 웹 크롤링하기

3-5. 보너스: CSS 선택자 조합하기

선택자 관련 질문 드립니다.

작성

·

209

0

안녕하세요.  선택자 관련해서 잘 이해가 안가는점이 있어 문의드립니다.

 

크롬 console 에서 $$('tr.abc td')[1].textContent 명령어를 칠 경우 100이라는 숫자를 뽑아옵니다.

 

소스 코드 상에서 아래와 같이 여러 방법을 사용해봤는데요.

100 이라는 데이터를 못가져오더라고요. 관련해서 어떻게 접근해야 100 이라는 데이터를 가져올 수 있을까요?

 

source code

const text = await page.evaluate(() => {
const num = document.querySelector('tr.abc td')[1];
return num.textContent;
});

const text = await page.evaluate(() => {
const num = document.querySelectorAll('tr.abc td')[1];
return num;
});

const text = await page.evaluate(() => {
const num = document.querySelector('tr.abc td');
return num;
});

 

HTML 태그입니다.

<tr class="abc">

  <td class="text">숫자</td>

  <td>100</td>

   ...

   ...

</tr>

 

 

퀴즈

이미지를 원격 링크로 사용하는 대신 직접 다운로드하는 주된 이유는 무엇일까요?

파일 크기를 줄이기 위해

이미지 품질을 자동으로 개선하기 위해

링크 분쟁이나 트래픽 문제를 피하기 위해

검색 엔진 최적화(SEO)를 개선하기 위해

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

document.querySelectorAll('tr.abc td')[1].textContent;
textContent를 왜 안 붙이셨나요?
Simple님의 프로필 이미지
Simple
질문자

그렇네요.. textContent 를 붙이니까 값이 나오네요. 아래 예제처럼 score 에 textContent 를 붙이는 식으로 될줄알았는데 크롬 console 에 나온거랑 똑같이 해야하는거였네요. 

답변 감사합니다.

 

const text = await page.evaluate(() => {
// const score = document.querySelector('.score.score_left .star_score');
const score = document.querySelector('.score.score_left');
if (score) {
return score.textContent;
};
Simple님의 프로필 이미지
Simple

작성한 질문수

질문하기