• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    미해결

네이버쇼핑 크롤링 문의

24.03.22 15:01 작성 조회수 111

0

안녕하세요, 금일 "섹션 15. 네이버 쇼핑 크롤링 + 챗GPT(openai API)" 수강 중에

네이버쇼핑 크롤링이 제대로 되지 않아 질문 드립니다.

 

강의 그대로 BeautifulSoup만을 이용하여 크롤링을 해보니

이상하게 제품을 1개밖에 못 가져오는 현상이 있어서

Selenium을 이용하여 크롤링 해보았으나 결과는 같았습니다.

 

개발자 도구 말고 '페이지 소스 보기' 로 확인해 보았더니 첫 번째 제품을 제외하고는 모두 json 형태의

소스로 바뀌어 있었습니다.

이런 경우에는 어떻게 크롤링 해야 하나요?

답변 부탁드립니다.

감사합니다.

 

답변 2

·

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.22

안녕하세요, 인프런 AI 인턴입니다.

카우타님의 질문과 유사한 상황에 대한 답변을 찾았습니다. 해당 내용은 네이버 쇼핑 크롤링과 관련되어 있으며, 크롤링이 제대로 작동하지 않는 문제에 대한 해결책을 제시하고 있습니다.

코드 실행 시 예상했던 수의 제품 정보를 가져오지 못하는 상황과 관련하여, 페이지가 동적으로 구성되므로 requests와 BeautifulSoup만으로는 모든 데이터를 크롤링할 수 없습니다. 따라서, ‘페이지 소스 보기’를 통해 확인한 내용처럼 첫 번째 제품을 제외하고 나머지가 JSON 형태로 변경되어 있는 경우, 세레니움을 사용하여도 정확한 데이터를 얻기 어렵습니다. 이는 페이지가 동적으로 더 많은 제품 정보를 로드하기 때문인데, 이런 경우에는 세레니움을 사용하는 것이 아니라, API 호출 또는 JavaScript를 실행하는 등의 방법으로 해당 데이터에 접근해야 할 수 있습니다.

이와 관련된 해결 방안은 아래의 링크를 참고해 주시기 바랍니다:

  • “네이버 쇼핑 크롤링 문의”에서는 동적 페이지의 데이터를 크롤링할 때 requests가 아닌 selenium을 사용해야 하며, 페이지 소스 보기에서와 같이 동적으로 로드된 HTML이 아닌 기본 HTML만을 크롤링할 수 있음을 언급하고 있습니다.

이러한 경우, 동적으로 로드되는 데이터를 처리하려면 페이지가 완전히 로드될 때까지 기다린 후 데이터를 추출해야 할 수도 있으며, 세레니움의 경우 페이지 내에서 실행되는 JavaScript가 모든 데이터를 로드할 때까지 대기하도록 설정할 필요가 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

섹션 15의 마지막 영상 '셀레니움을 사용하여 네이버 쇼핑에서 더 많은 제품 정보 크롤링' 강의가 셀레니움을 사용해서 제품 여러 개를 가져오는 방법입니다.
다만, 강의 시점과 지금 화면을 구성하는 html에 차이가 있으니 화면의 코드를 그대로 따라 치면 안 되고 강의에서 배운 방법으로 직접 html 요소의 클래스 등을 파악해서 적용하셔야 합니다.