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

백용익님의 프로필 이미지
백용익

작성한 질문수

Node.js로 웹 크롤링하기

4-2. 인피니트 스크롤 태그 분석하기

선생님 아무리 해도 안되는 부분이 있어서 올립니다.ㅜㅠㅜㅜ

작성

·

201

0

해당 영상에서는 postman에서 안켜지는 동적으로 나온 이미지들을 selector를 이용해서 가져오는 것으로 보이는데요.

아래의 코드를 사용해서 카카오맵 상세화면 크롤링 해오려고 하는데 셀렉터로 찾게된 div class 'info_menu'를 찾으면 아무것도 안 나옵니다..

제발 도와주세요..ㅠㅠㅠ 이거하려고 강의 구매한 건데 못하겠어요ㅠㅠㅠㅠ

stackoverflow 에서 검색해보고 찾긴했습니다. ..

await page.goto('https://place.map.kakao.com/873103765', { waitUntil: "networkidle0" });

이렇게 해주니 되었습니다. 

 

 

const fs = require("fs");
const puppeteer = require("puppeteer");
const axios = require("axios"); //ajax 라이브러리
const cheerio = require("cheerio"); //html 파싱

const crawler = async () => {
try {
const browser = await puppeteer.launch(
{headless : false}
);
const page = await browser.newPage();
await page.goto('https://place.map.kakao.com/915459672');
const result = await page.evaluate(()=>{
const scoreEl = document.querySelector('div.info_menu');
if(scoreEl){
console.log('있다!!');
return scoreEl.outerHTML;
}else{
console.log('없다!!');
return [];
}
});

console.log(result);
await browser.close();

} catch (e) {
console.error(e);
}
 
};
crawler();

답변 1

0

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

페이지 로딩 시 바로 안뜨는 태그들이 있습니다. 그런 건 await page.waitForSelector(선택자)로 나타나기까지 기다리면 됩니다.

백용익님의 프로필 이미지
백용익

작성한 질문수

질문하기