[Crawling] Beautiful Soup vs Selenium vs Scrapy 프레임워크 비교

최대 1 분 소요

[Crawling] Beautiful Soup vs Selenium vs Scrapy 프레임워크 비교

Beautiful Soup

  • python 내장 모듈인 requests 나 urllib을 이용해 HTML 다운 받고, beautifulsoup으로 데이터를 추출
  • HTML, XML 파일의 정보를 추출

[장점]

  • 정적 페이지에 적합

[단점]

  • 느림
  • 큰 데이터베 세트의 경우 눈에 띄는 병목 현상과 속도 저하가 있을 수 있음
  • 서버에서 HTML을 다운 받기 때문에, 서버사이드 렌더링을 사용하지 않는 SPA 사이트나, JavaScript 렌더링을 필요로 하는 사이트에서는 힘듬

Selenium

  • 자동화된 웹 테스트(버튼 클릭, 스크롤 조작 등)를 용이하게 하기 위해 개발

[장점]

  • 동적 페이지에 적합
  • JS, Dom 에 용이
  • 인터넷 브라우저를 통해 크롤링하는 개념이라, 실제 보여지는 웹 페이지의 전부를 가져올 수 있고, 디버깅 방법 또한 직관적임

[단점]

  • 많은 양의 데이터를 스크래핑할 때 느림
  • 웹 브라우저를 실제로 진행시키는 방법이기 때문에 속도도 많이 느리고, 메모리도 상대적으로 많이 차지
  • 멀티 프로세스를 사용해서 여러 브라우저로 크롤링하도록 하면 속도를 일정 부분 개선할 수 있음

Scrapy

  • 크롤링을 위해 개발된 프레임워크

[장점]

  • 매우 빠르고 효율적
  • 이벤트 기반 네트워킹 방식으로 작성됨
  • 비동기 기능
  • 이식성(Portability)
  • 모든 운영체제에서 작동함
  • 미들웨어, 파이프라인, JS 렌더링(splash), proxy, xpath, CLI 등 다양한 기능들과 플러그인들을 사용 가능
  • 병렬처리, robots.txt 준수여부, 다운로드 속도 제어 등 설정 가능

[단점]

  • 유저 친화적이지 않음
  • 플러그인들이 호환이 잘 안되는 편

image

출처 : 참조 - 유튜브

댓글남기기