framePage가 undefined라 진행이 되지 않습니다.
안녕하세요. 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가 나오는지 알 수 있을까요?
답변 1
1
안녕하세요. 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
그래프 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





