inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

framePage가 undefined라 진행이 되지 않습니다.

해결된 질문

393

ZZAMBA

작성한 질문수 13

0

 안녕하세요. puppeteer 크롤링 수업 진행 중 코드를 동일하게 했는데도 오류가 나서 질문을 남깁니다. 강의는 25분경입니다. 제 전체 코드는 아래와 같습니다.

import puppeteer from "puppeteer";

async function startCrawling() {
    const browser = await puppeteer.launch({headless: false});
    const page = await browser.newPage();
    await page.setViewport({width: 720, height: 480});
    await page.goto("https://finance.naver.com/item/sise.naver?code=005930");
    await new Promise((page) => setTimeout(page, 1000)); // 브라우저 로딩 대기

    for (let i = 0; i < page.frames().length; i++)
        console.log(page.frames()[i].url().includes("/item/sise_day.naver?code=005930"));
    const framePage = await page.frames().find((el) => {el.url().includes("/item/sise_day.naver?code=005930")});

    for (let i = 3; i <= 7; i++) {
        const date = await framePage.$eval(
            `body > table.type2 > tbody > tr:nth-child(${i}) > td:nth-child(1) > span`,
            el => el.textContent);

        const price = await framePage.$eval(`body > table.type2 > tbody > tr:nth-child(${i}) > td:nth-child(2) > span`,
            el => el.textContent);

        console.log(`날짜: ${date}, 가격: ${price}`);
    }

    await browser.close();
};

startCrawling();

위 코드 실행 시 framePage가 undefined로 정의되어 $eval 함수가 실행이 되지 않습니다.

그래서 혹시 frame 중에 일치하는 것이 없어서인가 싶어서 아래 코드로 콘솔에 찍어보았습니다만, true가 나오는 걸로 보아 문제가 없어야 하는것이 맞았습니다.

for (let i = 0; i < page.frames().length; i++)
    console.log(page.frames()[i].url().includes("/item/sise_day.naver?code=005930"));

/* 결과 값은
false
false
...(중략)...
true
false
false
*/

 

왜 undefined가 나오는지 알 수 있을까요?

javascript express nodejs docker tdd rest-api NestJS

답변 1

1

angie

안녕하세요. ZZAMBA님

const framePage = await page.frames().find((el) => {
    el.url().includes('/item/sise_day.naver?code=005930');
  });

화살표 함수 사용 시, 중괄호를 사용하였는데 return 값이 반환되지 않아 다음 로직들이 실행되지 않은 것으로 확인됩니다.

추가적으로 궁금한 점이 있으시다면 아래 링크를 참고해 학습해 보시길 바랍니다. 감사합니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/Arrow_functions

0

ZZAMBA

감사합니다. 다음 질문부터는 코드 확인을 제대로 한 뒤에 질문글을 올리겠습니다.

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

86

2

강의 전체 소스 코드를 받고싶습니다.

0

77

2

fontawesome 사용 문의

0

81

2

소스 코드 부탁드립니다~

0

87

2

깃 레포지터리 소스

0

87

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

74

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

89

3

강의 버전관련 문의입니다

0

104

2

Ubuntu 설치 관련

0

62

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

102

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

134

2

강의 전체 소스코드 받을수있을까요?

0

156

1

도커볼륨 마운트 관련

0

127

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

356

1

self-signed certificate in certificate chain 에러 발생

0

421

1

mongoose 설치 오류

0

143

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

286

2

08-06

0

180

3

구조랑 패턴 관련해서 질문

0

126

2

mydocker

0

129

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1