Selenium
- 별도의 web browser를 통해 웹 사이트를 이동하며 동적으로 scraping할 수 있다.
로그인, 스크롤, 버튼 클릭, 스크린 샷 등이 가능하며, 이러한 과정을 자동화할 수 있다.
- Selenium을 통해 웹 페이지의 source를 가져오고,
텍스트 추출을 할 때는 BeautifulSoup를 사용하는 방식으로도 하곤 한다.
- Selenium을 통해서 동적 데이터도 scraping할 수 있게 된다.
- scraping뿐만이 아닌, Web UI 테스트 등에 사용되기도 한다.
BeautifulSoup
- requests 라이브러리로 HTTP 요청을 보내 해당 URL의 웹 페이지 HTML을 가져오고,
BeautifulSoup객체로 만들어 원하는 데이터(HTML태그의 텍스트)를 추출하는
정적인 scraping이다.
- requests 라이브러리로 GET 요청 시 query parameter를 지정하여,
반복문을 통해 여러 페이지를 scraping할 수 있다.
- 웹 페이지의 동적 데이터는 HTML을 통해 scraping하기 어려우므로,
그 데이터와 관련된 API에 HTTP요청을 보내 JSON 데이터를 얻는 방식으로 한다.
(BeautifulSoup과는 관계 없음)