아래 noscript 내용입니다.
528
작성한 질문수 12
const puppeteer = require('puppeteer');
const dotenv = require('dotenv');
dotenv.config();
const crawler = async () => {
try {
const browser = await puppeteer.launch({ headless: false, args: ['--window-size=1920,1080', '--disable-notifications'] });
const page = await browser.newPage();
await page.setViewport({
width: 1080,
height: 1080,
});
await page.goto('https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=서울+지게차');
await page.waitFor(3000);
await page.evaluate(() => {
window.scrollBy(0, 1500);
document.querySelector('#loc-main-section-root > section > div > div.api_more_wrap > a').click();
});
await page.waitFor(3000);
await page.waitFor(3000);
await page.evaluate(() => {
document.querySelector('#_pcmap_list_scroll_container > ul > li:nth-child(1) > div.qbGlu > div.ouxiq.icT4K > div > div > span > a > span.hClKF').click();
});
await page.waitFor(3000);
await page.evaluate(() => {
document.querySelector('#_pcmap_list_scroll_container > ul > li:nth-child(1) > div.qbGlu > div.ouxiq.icT4K > div > div > div > div:nth-child(1) > span.RUjqr > a').click();
});
} catch (e) {
console.error(e);
}
};
crawler();
Error: Evaluation failed: TypeError: Cannot read properties of null (reading 'click')
at __puppeteer_evaluation_script__:2:151
at ExecutionContext._evaluateInternal (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/ExecutionContext.js:122:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ExecutionContext.evaluate (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/ExecutionContext.js:48:12)
at async crawler (/Users/youssi/Downloads/nodejs-crawler-master/lecture/index.js:53:5)
-- ASYNC --
at ExecutionContext.<anonymous> (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/helper.js:111:15)
at DOMWorld.evaluate (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/DOMWorld.js:112:20)
-- ASYNC --
at Frame.<anonymous> (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/helper.js:111:15)
at Page.evaluate (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/Page.js:833:43)
at Page.<anonymous> (/Users/youssi/Downloads/nodejs-crawler-master/lecture/node_modules/puppeteer/lib/helper.js:112:23)
at crawler (/Users/youssi/Downloads/nodejs-crawler-master/lecture/index.js:53:16)
에러가 납니다. 구글 개발자도구에서 select an element~~~ 누르고 나서야
document.querySelector('#_pcmap_list_scroll_container > ul > li:nth-child(1) > div.qbGlu > div.ouxiq.icT4K > div > div > span > a > span.hClKF').click();
});위 소스가 정상적으로 작동을 합니다.
찾아보니
Javascript를 사용하여 브라우저에서 렌더링하는 웹 페이지를 가져오려고 합니다. 즉, Http Request Node를 사용하여 수신하는 초기 응답에 현재 검색 중인 데이터가 포함되지 않습니다. 당신의 데이터는 자바스크립트 안에 로드되어 브라우저에 의해 html에 삽입될 것입니다.
이것과 비슷한 거 같습니다. 크롤링이 안되는 것일까요??
답변 1
0
noscript 내용이라고 하는게 뭔 뜻인지 도저히 모르겠네요.
iframe 내부라서 보안 문제때문 클릭이 안 된 거고요. 다음과 같이 옵션에서 보안문제를 모두 해제한 후,
const browser = await puppeteer.launch({ headless: false, args: [
'--window-size=1920,1080', '--disable-notifications',
'--disable-web-security',
'--disable-features=IsolateOrigins,site-per-process'
] });
이렇게 선택하면 됩니다.
await page.evaluate(() => {
document.querySelector('#searchIframe').contentDocument.querySelector('#_pcmap_list_scroll_container span.hClKF').click();
});
headless 궁금한게 있어요!
0
414
2
6강 프록시 서버 테스트 관련하여
0
339
2
페이스북 로그인 로그아웃 자동화관련
0
277
2
3-2 axios로 이미지 저장하기에서 axios 관련 오류..
0
269
2
3-1 이미지 다운로드 준비하기 에서 선택자 구성 질문
0
250
3
2-4 csv 출력하기에서 오류 발생
0
294
3
try-puppeteer.appspot.com 을 사용할 수 없나요?
0
151
1
크롬 확장프로그램 관련 질문드립니다.
0
169
1
크롤링 자바스크립트 exe파일
0
555
1
puppeteer 관련
0
599
2
6-3 proxy-database 관련
1
288
1
크롤링을 여러개 돌리려면 어떠한 방법을 선택하는게 좋을까요?
0
794
1
네이버 영화 평점 크롤링 (axis cheerio)
1
489
1
크롤링
0
377
1
앱 크롤링
0
1783
1
페이스북 로그인
0
544
1
2019년도 영상이라 error가 나는 걸까요? 2-4. csv에 출력하기에서 error
1
461
1
안녕하세요! for of와 Promise.all 차이점에 관해서 질문드려요!
0
440
2
대량 요청 처리 방법
0
464
1
구글 패스워드 자동입력시 오류
0
250
1
반복크롤링 할 때 아래 질문주신분 하고 약간 형태가 달라요
0
366
2
인스타그램 돔의 value 값으로 쿼리셀렉터 찾을 수 있나요?
0
300
1
페이스북 로그인시 돔이 생성 안되는 문제
0
310
1
hyperfreed_story_id 사용불가라 태그가 많이 바뀌어서
0
344
1





