1. HTML을 분석해주는 BeautifulSoup
2. 원하는 요소 가져오기 1
3. HTML의 Locator로 원하는 요소 찾기
4. 원하는 요소 가져오기 2
5. 동적 웹 페이지와의 만남
1. 정적 웹 사이트와 동적 웹 사이트
- 정적(static) 웹 사이트 : HTML 내용이 고정
- 동적(dynamic) 웹 사이트 : HTML 내용이 변함
정적 웹 사이트는 HTML 문서가 완전하게 응답된다
동적 웹 사이트는 응답 후 HTML이 렌더링이 될 때까지의 지연시간이 존재한다.
2. 동적 웹 사이트의 동작 방식
- 웹 브라우저에선 JavaScript라는 프로그래밍 언어가 동작한다.
- 비동기 처리를 통해서 필요한 데이터를 채운다
1) 동기 처리 : 요청에 따른 응답을 기다린다. HTML 로딩에 문제가 없다
2) 비동기 처리 : 요청에 따른 응답을 기다리지 않는다. 상황에 따라서 데이터가 완전하지 않은 경우가 발생한다.
3. 지금까지 스크래퍼의 문제점
1.문제점
1) 이 상황에서 요청을 보내면 불완전한 응답을 받게된다
2) 키보드 입력, 마우스 클릭 등을 requests로는 진행하기 어렵다
2. 해결 방법
- 임의로 시간을 지연한 후, 데이터 처리가 끝난 후 정보를 가져오면 된다
- 웹 브라우저를 자동화하는 라이브러리 Selenium 사용
1) 응답 후 시간을 지연시킬 수 있다
2) UI와의 상호작용이 가능하다
결론.
동적 웹사이트는 응답 후 바로 정보를 추출하기 어렵다
또한, 다양한 키보드 입력과 마우스 클릭 등의 상호작용이 존재한다
이런 상황을 해결하기 위해, 웹 브라우저를 파이썬으로 조작하는 전략을 취하자