본문 바로가기
Python/Scraping

[Scraping] 웹 스크래핑이란?

by 인사이티드 2023. 8. 29.

< What is Web Scraping and What is Used For? >

출처: https://www.parsehub.com/blog/what-is-web-scraping/

 

What is Web Scraping and What is it Used For? | ParseHub

Web scraping is one of the most efficient and useful ways to extract data from a website, especially in 2023! Some websites can contain a very large amount of invaluable data. Stock prices, product details, sports stats, company contacts, you name it. If y

www.parsehub.com

여러 개의 데이터 분석 프로젝트를 하고 다양한 데이터를 접하면서, 문득 이런 생각이 들었다.

더보기

여태까지 많은 데이터 분석을 해온 건 사실이지만, 과연 이것만으로 데이터 분석의 전 과정을 이해하고 학습했다고 할 수 있을까?

한참을 생각하다가, 한 가지 과정에 대한 공부가 빠져 있다는 것을 깨달았다.

바로 데이터 수집 과정이다.

 

이전까지 내가 해왔던 작업들은 데이터 전처리부터 모델링, 인사이트 도출 또는 예측 결과를 만드는 일이었다.

따라서 직접 "데이터베이스를 구축"하는 작업에 대해 공부해야겠다는 생각이 들었다.

 

그 방법으로 찾은 것이 바로  웹 스크래핑(Web Scraping)이었다.

 

웹 스크래핑(Web Scraping)이란?

웹 스크래핑이란 Web + Scraping의 합성어이다.  Scrape라는 말 뜻 그대로, 웹으로부터 정보를 긁어온다는 것이다.

가끔 가다 웹 크롤링(Web Crawling)과 혼동 되어 쓰이는데, 둘은 엄연히 다르다.

  • 웹 스크래핑: 하나 이상의 웹 사이트에서 데이터를 추출하는 작업
  • 웹 크롤링: 웹에서 URL을 찾거나 발견하는 작업

내가 하고 싶은 작업은 웹 스크래핑을 통한 직접적인 데이터 추출이고, 앞으로 사이드 프로젝트와 함께 학습할 예정이다.

 

웹 스크래핑은 합법인가?

웹 스크래핑은 일반적으로 합법이다. 하지만 웹 사이트에 따라 불법이 될 수도 있는데, 웹 사이트 측에서 추출할 수 없게 만들어놓은 추출하는 것은 불법이 될 수 있다. 따라서 웹 사이트의 크롤링 정책을 잘 확인하는 것이 중요하다.

 

파이썬에서 웹 스크래핑을 도와주는 라이브러리 등은 다음과 같은 것들이 있다.

더보기

Requests: 파이썬에서 HTTP 요청을 보내고 받는 작업을 간편하게 수행하기 위한 인기 있는 라이브러리이다.

                 HTTP 요청을 처리하고 응답을 받는 작업을 단순화하며, 웹 API와 상호작용하거나 웹 페이지의 내용을

                 가져오는데 사용된다.

BeautifulSoup: HTML과 XML 파일로부터 데이터를 뽑아내기 위한 파이썬 라이브러리이다. Requests 라이브러리와                          함께 자주 사용된다.

Selenium: 웹 자동화 어플리케이션의 테스트 목적으로 사용되는 프레임워크이다. BeautifulSoup와 마찬가지로 웹                       스크래핑에 자주 사용되는 프레임워크이다.

 

BeautifulSoup vs Selenium

BeautifulSoup와 Selenium은 둘 다 웹 스크래핑을 위해 사용되는 대표적인 패키지이다.

그러나 둘은 꽤나 차이점이 많다.

 

BeautifulSoup와 Selenium 비교

위의 표에서 볼 수 있듯이, 가장 큰 차이점은 BeautifulSoup는 정적이고, Selenium은 동적이라는 것이다.

따라서 BeautifulSoup는 좀 더 입문자가 접근하기 쉬운 반면에 Selenium은 좀 더 어렵다.

간단한 HTML 및 XML 파일에서는 BeautifulSoup를 활용하는 것이 좋다. Selenium에 비해 훨씬 빠르고
가볍게 스크래핑할 수 있기 때문이다.

 

그러나, 동적 스크래핑을 할 수 있다는 Selenium의 장점은 훨씬 더 다양한 방식의 스크래핑을 가능하도록 만든다.

특히, 여러 개의 브라우저 (Chrome, Brave, Edge, IE, ...)에서의 자동화된 작업 (클릭, 폼 채우기)을 가능하게 만들어준다.

이 외에도 Selenium은 다양한 프로그래밍 언어를 지원한다.

 

나는 좀 더 범용적인 스크래핑을 위해 Selenium을 공부해보기로 결정했다.

앞으로 Selenium을 활용한 스크래핑을 학습하고, 과정에서 겪었던 어려움들을 공유하고자 한다.


참고자료

[1] "What is Web Scraping and What is it Used For?", 2023, parsehub,

https://www.parsehub.com/blog/what-is-web-scraping/

[2] "Selenium vs BeautifulSoup in 2023: Which Is Better?", 2023, Zenrows,

https://www.zenrows.com/blog/selenium-vs-beautifulsoup#beautifulsoup