Q1) BeautifulSoup과 Selenium은 어떤 상황에서 각각 더 적합한가요?
1. BeautifulSoup
1) 정의
- 가져온 HTML 문서를 분석하고 원하는 태그를 뽑아내는 도구
- 이미 받은 웹페이지 코드에서 정보만 뽑기!
2) 장점
- 가볍고 빠름
- 코드가 비교적 단순함
- 서버 자원 부담이 적음
3) 단점
- 자바스크립트 실행 결과는 직접 못 봄
- 버튼 클릭, 무한 스크롤, 로그인 처리 어려움
4) 예시
- 뉴스 사이트 기사 제목 수집
- 쇼핑몰의 정적인 상품 목록 파싱
- 공공데이터 페이지의 표 정보 추출
5) 적합한 상황
-> 정적인 페이지를 수집할 때 좋음
- 페이지를 열자마자 HTML에 원하는 데이터가 이미 들어 있음
- 클릭이나 로그인 없이 정보 확인 가능
- 기사 제목, 가격, 표 데이터, 리스트 형태 정보 추출
- 속도가 중요하고 많은 페이지를 수집해야 함
2. Selenium
1) 정의
- 브라우저를 직접 띄워서 사람처럼 클릭, 입력, 스크롤까지 할 수 있는 도구
- 웹페이지를 실제로 조작하면서 정보 얻기!
2) 장점
- 실제 사용자 행동을 자동화할 수 있음
- 동적 웹페이지 처리 가능
- 클릭, 입력, 스크롤, 팝업 대응 가능
3) 단점
- 느림
- 코드가 더 복잡함
- 브라우저 드라이버 관리 필요
- 대량 수집에는 비효율적일 수 있음
4) 예시
- 로그인 후 마이페이지 데이터 수집
- 무한스크롤 기반 리뷰 수집
- 날짜 필터를 바꿔가며 데이터 조회
- 버튼 클릭 후 생성되는 테이블 수집
5) 적합한 상황
-> 동적인 페이지를 다룰 때 좋음
- 자바스크립트가 실행된 뒤에 데이터가 나타남
- 로그인 후에만 정보 접근 가능
- "더보기" 버튼을 눌러야 데이터가 나옴
- 무한 스크롤을 내려야 목록이 추가됨
- 검색창 입력, 날짜 선택, 체크박스 클릭이 필요함
3. 언제 무엇을 쓰면 되나?
페이지 소스에 데이터가 바로 있다 -> BeautifulSoup
- 클릭/스크롤/로그인/자바스크립트 실행이 필요하다 -> Selenium
빠르고 단순한 수집: BeautifulSoup
복잡하지만 사람처럼 조작해야 하는 수집: Selenium
😎