무한 스크롤을 할 때, 새로운 내용이 없을 경우 중단하는 방법이 궁금합니다.
410
작성한 질문수 2
회사에서 사용하는 카카오톡 채널(구 옐로 페이지)의 대화 목록을 크롤링해서
자체 DB로 옮기는 작업을 하고 있는데요,
대화 목록이나 대화 내용을 크롤링 할 때 새로운 내용이 나올 때까지만 자동 스크롤 해서 대화 내용을 받으려고 합니다.
더 이상 스크롤 되지 않을 때까지 스크롤 하는 방법이 있을까요?
답변 3
0
대화 내용을 새로 불러올 때마다 Network탭에서 데이터들을 받아오는 것을 발견할 수 있습니다. 스크롤을 올렸는데 더이상 새로운 요청이 감지되지 않거나 응답은 받았는데 내용물(body)가 비어있다면 끝까지 다 불러온 것입니다.
https://github.com/puppeteer/puppeteer/blob/v5.4.1/docs/api.md#pagesetrequestinterceptionvalue
요청을 감지하는 방법은 위 공식문서에 나와있는대로 하시면 됩니다. 그런 다음 page.on('request', 콜백)이나 page.on('response', 콜백)으로 요청과 응답을 검사해서 끝인것 같다면 크롤링을 중단하시면 됩니다.
0
답변 감사합니다.
제가 표현을 너무 추상적으로 해서 잘 전달이 안된 것 같습니다.
카카오 채널은 현재 대화 내용이 다운로드는 되지 않는데,
카카오 채널 자체의 창을 통해서는 마우스 스크롤 기능으로 위로 쭉 쭉 올려서 과거 대화를 '볼 수만' 있게 되어 있습니다.
이 문제 때문에 고객 상담 내용 중에서 키워드를 검색하고 싶어도 잘 안되는 부분이 있습니다.
이를 해결하기 위해 퍼펫티어를 활용하여 그동안의 대화를 크롤링해서 자체 DB로 옮기려는 것이구요.
따라서 퍼펫티어를 활용하여 '위로 계속 스크롤 해서 첫 대화가 나올 때까지' 스크롤 하면서 역순으로 크롤링 하고자 하는데요,
위로 스크롤을 해서 더 이상 새로운 내용이 ajax로 나타나지 않을 때까지, 즉 첫 대화가 나올 때까지만 반복문을 돌리려고 하는데
'더 이상 새로운 내용이 없다는 것'을 어떻게 감지해서 반복문을 중단시킬 수 있을까 궁금합니다.
0
새로운 내용이라는 것이 끝을 말씀하시는 게 아니라 이미 DB로 이관한 내용을 말씀하시는 거죠?
A라는 채팅 내용이 있으면 그 A에 부여된 고유한 ID또는 시간초 데이터에 접근 가능하신가요? ID라고 해도 정렬되어있어야 합니다.
접근 가능하다면 그 아이디가 나오는지 매번 체크하시면 되고요. 접근 불가능하다면 조금 많이 복잡해집니다.
headless 궁금한게 있어요!
0
413
2
6강 프록시 서버 테스트 관련하여
0
337
2
페이스북 로그인 로그아웃 자동화관련
0
276
2
3-2 axios로 이미지 저장하기에서 axios 관련 오류..
0
269
2
3-1 이미지 다운로드 준비하기 에서 선택자 구성 질문
0
250
3
2-4 csv 출력하기에서 오류 발생
0
294
3
try-puppeteer.appspot.com 을 사용할 수 없나요?
0
149
1
크롬 확장프로그램 관련 질문드립니다.
0
169
1
크롤링 자바스크립트 exe파일
0
553
1
puppeteer 관련
0
598
2
6-3 proxy-database 관련
1
287
1
크롤링을 여러개 돌리려면 어떠한 방법을 선택하는게 좋을까요?
0
793
1
네이버 영화 평점 크롤링 (axis cheerio)
1
487
1
아래 noscript 내용입니다.
0
527
1
크롤링
0
375
1
앱 크롤링
0
1783
1
페이스북 로그인
0
544
1
2019년도 영상이라 error가 나는 걸까요? 2-4. csv에 출력하기에서 error
1
461
1
안녕하세요! for of와 Promise.all 차이점에 관해서 질문드려요!
0
440
2
대량 요청 처리 방법
0
463
1
구글 패스워드 자동입력시 오류
0
247
1
반복크롤링 할 때 아래 질문주신분 하고 약간 형태가 달라요
0
362
2
인스타그램 돔의 value 값으로 쿼리셀렉터 찾을 수 있나요?
0
299
1
페이스북 로그인시 돔이 생성 안되는 문제
0
306
1





