본문 바로가기
Study/Data Science

[Data Science] 크롤링 라이브러리 (파이썬)

by ngool 2024. 12. 5.

데이터 수집을 할 때 사용하는 기법 중 대표적인 것으로 "크롤링"이 있죠!

그리고 이 크롤링은 일반적으로 파이썬으로 수행하게 되는데요,

이는 파이썬에 크롤링을 돕는 라이브러리들이 잘 구축되어 있기 때문입니다!

 

그렇다면 파이썬의 크롤링 라이브러리에는 어떤 것들이 있고, 어떤 역할을 하는지 살펴보겠습니다!


📌 크롤링 라이브러리

라이브러리 설명
Requests - 정적 수집도구
- 단순한 형태의 문법, 인코딩 확인, 헤더 파악, 텍스트 전환이 용이하고, 딕셔너리 형태로 데이터 전송
Urllib - 정적 수집도구
- 데이터를 바이너리 형태로 인코딩하여 데이터 전송
Selenium - 동적 수집도구
- 웹 브라우저 드라이버 설치 필요, 동적인 여러가지 상호작용으로 데이터 수집
BeautifulSoup - 본문 파싱을 위한 도구
- HTML 문법으로 작성된 문서를 파싱하여 필요한 부분의 태그를 기준으로 데이터 추출 및 정제

BeautifulSoup 

주 역할 : HTML 문서 파싱
  • HTML 문서를 단순한 파이썬 객체처럼 다룰 수 있어 직관적이고 사용이 간편
  • 파이썬 내장 파서(html.parser), lxml, html5lib 등 다양한 HTML 파서를 지원하여 성능과 호환성 선택 가능
  • CSS 선택자, 태그, 속성 등 다양한 방식으로 데이터를 선택할 수 있어 복잡한 웹 페이지에서도 유용

Requests, Urllib : 정적 수집 도구

특징 Requests Urllib
라이브러리 종류 외부 라이브러리 (설치 필요) Python 표준 라이브러리 (추가 설치 불필요)
데이터 전송 방식 자동 디코딩 (텍스트 데이터) 바이너리 형식으로 전송 및 수신 (디코딩 필요)
가독성 / 편의성 코드가 직관적이고 요청과 응답 처리가 간단하며 가독성이 높음 Urlopen()을 포함한 다소 복잡한 접근 방식
사용 용도 복잡한 웹 요청 및 데이터 추출 작업 단순 HTTP 요청이나 가벼운 스크립트

Selenium : 동적 수집 도구

  • 웹 애플리케이션의 테스트를 자동화할 수 있도록 설계된 오픈 소스 프레임워크
  • 다양한 브라우저(Chrome, Firefox, Edge, Safari 등)를 지원하며, 여러 프로그래밍 언어로 제어 가능
  • 웹 사이트가 자바스크립트로 동적 컨텐츠를 로드하는 경우, Selenium을 통해 브라우저를 직접 제어하여 동적 페이지의 콘텐츠도 스크래핑 가능