문제의 발단
request 방식으로 url요청하여 HTML 모든 데이터를 추출
추출한 데이터를 로그로 찍어보면 enroll이 보인다 이 데이터를 추출해보려하면
로그에서 분명 확인했는데 막상 추출하면 데이터가 비어 있다.
이유는 js 렌더링 이전의 데이터를 긁어 오고 있기 떄문
Selenium은 실제 브라우저를 자동화하여 웹 페이지를 렌더링하는 반면, request로 받아온 HTML을 파싱하는 BeautifulSoup는 단순히 HTML 텍스트를 파싱하는 라이브러리. 둘 사이의 주요 차이점과 BeautifulSoup이 실패한 이유는 다음과 같다
time.sleep(5)
와 같은 명령을 사용하여 페이지가 완전히 로드될 때까지 기다릴 수 있습니다.Synology Wiki 페이지와 같은 사이트는 JavaScript를 사용하여 페이지 로드 시 동적 콘텐츠를 생성하거나 수정할 수 있습니다. BeautifulSoup은 이러한 JavaScript 처리를 수행하지 않기 때문에 동적으로 생성된 콘텐츠를 가져오지 못합니다. 반면, Selenium은 실제 브라우저를 사용하여 JavaScript를 실행하고, 모든 동적 콘텐츠를 포함한 완전한 페이지를 렌더링합니다.
이로 인해 BeautifulSoup은 정적 HTML 페이지에서는 잘 작동하지만, JavaScript로 동적 콘텐츠를 생성하는 페이지에서는 Selenium과 같은 도구가 필요함.