naver 글자 수집 오류 건
2
작성한 질문수 1
크롬 브라우저 devtools element 탭에서
<span class="service_name">메일</span> 로 표출되어
Jupyter 파이썬으로 span 태그만 선택 (
soup.select("span")) 결과 값은 아래와 이미지와 같이 표출됩니다.
저희가 선택하려고 하는 메일/블로그 등 메뉴 텍스트가 아예 존재하지 않습니다. 상위 메뉴 텍스트명만 표출되고 있습니다.
soup.find_all("span", class_="service_name")로 실행에도 결과값은 blank입니다.
네이버 홈페이지 첫 화면과 메일/블로그 등 링크 검사로 크롬 Devtools elements내 페이지가 다른 것일까요?
궁금합니다.
<span>상단영역 바로가기</span>, <span>서비스 메뉴 바로가기</span>, <span>새소식 블록 바로가기</span>, <span>쇼핑 블록 바로가기</span>, <span>관심사 블록 바로가기</span>, <span>MY 영역 바로가기</span>, <span>위젯 보드 바로가기</span>, <span>보기 설정 바로가기</span>, <span class="ico_btn_search_svg"> <svg id="search-btn-svg" viewbox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> <path d="M22.13.5c11.378 0 20.632 9.256 20.632 20.63 0 4.699-1.566 9.155-4.439 12.782l10.164 10.165a2.41 2.41 0 0 1-1.706 4.115 2.412 2.412 0 0 1-1.706-.705L33.31 35.719a2.41 2.41 0 0 1 0-3.41 15.71 15.71 0 0 0 4.628-11.178c0-8.718-7.09-15.808-15.807-15.808-8.718 0-15.808 7.09-15.808 15.808 0 7.15 4.817 13.43 11.714 15.273a2.41 2.41 0 0 1 1.705 2.954 2.41 2.41 0 0 1-2.95 1.705C7.788 38.658 1.5 30.46 1.5 21.131 1.5 9.756 10.756.5 22.13.5zm4.716 34.746a3.483 3.483 0 1 1 0 6.966 3.483 3.483 0 0 1 0-6.966z"></path> </svg> </span>, <span class="blind">검색</span>, <span class="ai_effect_symbol" id="search-ai-tab-button-inner"></span>, <span class="blind">AI 검색</span>, <span class="keybord_text"> <span class="blind">입력도구</span> </span>, <span class="blind">입력도구</span>]
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 이정훈님.
크롬 Devtools에서 확인한 내용과 BeautifulSoup를 사용한 크롤링 결과가 일치하지 않아 문의하신 내용에 답변 드리겠습니다.
문제 원인
- 웹사이트 첫 로드 시점에 따라 DOM 구조가 동적으로 변경되는 경우가 있습니다. 네이버와 같은 동적 웹사이트는 JavaScript로 내용이 업데이트되기 때문에, requests 라이브러리를 사용한 단순한 HTTP 요청은 JavaScript에 의해 변경된 콘텐츠를 반영하지 못할 수 있습니다.
해결 방안
Selenium 활용:
- Selenium은 웹 브라우저를 제어하여 JavaScript가 실행된 후의 최종 DOM을 크롤링할 수 있습니다. Selenium을 이용해서 브라우저를 열고, 페이지가 완전히 로드된 후에 데이터를 수집할 수 있습니다.
- Selenium을 사용한 웹 크롤링에 대한 예제를 참고하세요.
- Selenium은 웹 브라우저를 제어하여 JavaScript가 실행된 후의 최종 DOM을 크롤링할 수 있습니다. Selenium을 이용해서 브라우저를 열고, 페이지가 완전히 로드된 후에 데이터를 수집할 수 있습니다.
Web Scraper 사용:
selenium,pyppeteer와 같은 툴을 사용하여 JavaScript 렌더링 이후의 HTML을 수집할 수 있습니다. 이러한 도구를 사용하면, 실제 브라우저와 유사한 조작이 가능해 JavaScript로 생성된 태그도 모두 수집할 수 있습니다.
적절한 User-Agent 설정:
- 가끔 서버가 스크립트 접근을 차단하기도 합니다. 이 경우 requests 라이브러리에서 User-Agent를 설정하여 웹 브라우저에서 직접 요청하는 것처럼 보이게 할 수 있습니다.
- 가끔 서버가 스크립트 접근을 차단하기도 합니다. 이 경우 requests 라이브러리에서 User-Agent를 설정하여 웹 브라우저에서 직접 요청하는 것처럼 보이게 할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
쥬피터 노트북이 실행이 안됩니다.
0
7
1
뒤로가기 버튼 같은 것이 있나요?
0
14
1
Replit 강의 자료가 안나와요
0
13
1
강의 연장 문의
0
14
1
프로그램 실행시간에 대한 질문
1
15
2
비중 및 매수 종목수 조정.
1
16
2
Claude api가 소식 동기화가 늦는 문제
1
21
2
[긴급요청2] 28강 동영상 오류(27강 음성 재생) 수정 예정일자를 알려주세요
0
14
1
codex에게 대용량 코드베이스를 인식 시키는 방법은 어떤게 있나요?
0
25
1
교육자료가 너무 오래되어서 지시한대로 진행하려 해도 안됩니다.
0
30
1
reg.get("http://www.naver.com")
0
54
2
VS로 수강 중인 수강생
0
54
1
네이버 페이지 데이터 수집 실습에서 a.nav가 안되요ㅠ
0
93
1
궁금증
0
101
1
Beautifulsoup실습도중 발생한 문제
0
160
1
selenium 버전이 4.x 대가 되면서 메서드가 달라졌고, 크롬드라이버 다운도 방식이 달라졌습니다(24.09.07 기준)
1
285
1
수업중 따라하기 오류 ㅠㅠ
0
253
2
req.get("http://www.naver.com) 입력후 "Response[200]" 이라고 나오지 않네요 ㅠㅠ
0
190
1
인스타 그램 크롤링 할때
0
931
1
질문
0
322
1
셀레니움 변경사항 입니다.
0
282
0
동영상안에
0
256
0
코스피거래상위종목 수집 강의에서 nth-child 결과 질문입니다
0
651
1
질문이 있습니다.
0
298
1





