포스트

웹 크롤링과 웹 스크래핑, Beautiful Soup와 Selenium

살다보니 웹 크롤링을 해야할 일이 생겼다

이것저것 검색하다보니 웹 크롤링과 웹 스크래핑 두 단어가 눈에 띄었다

처음에는 같은 뜻인줄 알고 뒤져봤으나 더 자세히 찾아보니 차이가 있었다

1. 웹 크롤링(Crawling)과 웹 스크래핑(Scraping)의 차이?


  • 웹 크롤링은 동적으로 여러 웹페이지를 돌아다니면서 수집하는 것

  • 위키피디아에서는 웹 크롤링을 웹을 체계적으로 검색하고 일반적으로 웹 인덱싱을 목적으로 검색 엔진에서 작동하는 인터넷 봇으로 정의하고 있다

  • 웹 스크래핑은 특정 웹페이지에서 필요한 데이터를 추출해내는 것

  • 위키피디아에서는 웹 스크래핑을 웹 사이트에서 데이터를 추출하는데 사용되는 데이터 스크래핑으로 정의하고 있다

  • 간단히 정리하면 넓고 광범위하게는 크롤링, 심도깊고 자세히는 웹 스크래핑으로 생각하면 될 듯

2. Selenium 과 Beautiful Soup


  • 둘 다 Python에서 사용되는 웹 크롤링 라이브러리지만 각각의 장단점이 있음

BeautifulSoup

1. Beautiful Soup

  • HTML과 XML 문서를 파싱하여 데이터를 추출하는데 사용되는 라이브러리

  • HTML문서를 파싱하여 트리 구조로 만들어주고, 이를 통해 원하는 데이터를 쉽게 추출 가능

  • 정적인 페이지에서만 사용 가능. HTML 문서를 분석하는 역할

Selenium

2. Selenium

  • 웹 브라우저를 자동으로 조작하여 스크래핑 하거나 테스팅하는 라이브러리

  • 웹 브라우저를 직접 실행하여 페이지를 로드하고, 버튼 클릭, 스크롤 등을 수행할 수 있음

  • 동적 페이지에서 주로 사용

  • beautifulsoup에 비해 메모리 사용량이 많고 느리다고함

3. 결론

  • 동적인 웹 페이지나, Javascrpit를 포함하는 페이지를 스크랩하는 경우 Selenium 사용함

  • 정적인 콘텐츠를 가져오고 분석하는데는 Requests + Beautiful Soup를 사용함

  • 두개 동시에 써서 효과적으로 추출할 수도 있다고 한다

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.