인프런 커뮤니티 질문&답변
지식인 크롤링 하기에서 질문
작성
·
48
·
수정됨
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. ottplus님.
지식인 크롤링 중 페이지의 HTML 구조와 실제 화면에 표시되는 데이터 간 차이가 발생할 수 있는 이유에 대해 설명드리겠습니다.
주요 원인 및 해결 방안
동적 로딩:
- 웹 페이지가 JavaScript를 사용해 데이터를 동적으로 로드하는 경우, requests 라이브러리로 가져온 HTML에는 표시되지 않은 콘텐츠가 포함됩니다. 크롤링을 통해 HTML만 가져오는 과정에서 이러한 비동기적으로 로드되는 부분은 무시됩니다.
- 이 경우, JavaScript 렌더링을 지원하는
Selenium과 같은 라이브러리를 활용하여 데이터를 가져오는 방법을 고려해보세요.
- 웹 페이지가 JavaScript를 사용해 데이터를 동적으로 로드하는 경우, requests 라이브러리로 가져온 HTML에는 표시되지 않은 콘텐츠가 포함됩니다. 크롤링을 통해 HTML만 가져오는 과정에서 이러한 비동기적으로 로드되는 부분은 무시됩니다.
HTML 변경:
- 크롤링 목적의 웹 페이지가 변경되면서 HTML 구조가 달라질 수 있습니다. 따라서 처음 선택한 CSS 선택자나 경로가 정확하지 않을 수 있습니다.
- 개발자 도구에서 HTML 구성요소(CSS 선택자)가 변화했는지 지속적으로 확인해야 합니다.
- 크롤링 목적의 웹 페이지가 변경되면서 HTML 구조가 달라질 수 있습니다. 따라서 처음 선택한 CSS 선택자나 경로가 정확하지 않을 수 있습니다.
데이터 로딩 순서:
- 지식인 서비스에서는 데이터를 비동기 requests 통해 가져오는 과정에서 각 부분의 로딩 타이밍이 달라질 수 있습니다. 따라서 크롤링 시의 순서와 브라우저에서의 시각적인 순서가 차이가 날 수 있습니다.
- 지식인 서비스에서는 데이터를 비동기 requests 통해 가져오는 과정에서 각 부분의 로딩 타이밍이 달라질 수 있습니다. 따라서 크롤링 시의 순서와 브라우저에서의 시각적인 순서가 차이가 날 수 있습니다.
해결 방법
- Selenium 적용: JavaScript로 로드된 데이터를 포함한 전체적인 페이지를 크롤링하고 싶을 때,
Selenium을 사용하는 것이 유용합니다.
- 정확한 선택자 확인: 개발자 도구 (F12)를 사용해 원하는 데이터가 있는 HTML 요소의 CSS 선택자를 정확히 확인하세요.
time.sleep()의 활용: 페이지가 완전히 로드되기 전 충분한 지연 시간을 주어 준다면 조금 더 일관된 데이터를 가져올 확률을 높일 수 있습니다.
아래의 질문을 통해 비슷한 주제에 대한 다른 해결 방법도 참고하실 수 있습니다:
- 뉴스 본문 크롤링: 동적 웹 페이지에서 데이터를 안전하게 크롤링하기.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






네이버 지식인은 정적인 페이지입니다~!
분명히 화면에 첫번째 지식인글이 보이는데, 수집되는건 두번째 지식인 글이라면
사용자 인증(성인)이 필요한 지식인 글이라서 그럴 수 있습니다 🙂