본문 바로가기
Info

웹 크롤링을 하는 이유와 방법

by 별별 리뷰어 2021. 2. 19.
반응형

웹 크롤링을 하는 이유

인터넷에는 엄청난 양의 자료 및 정보들이 쌓여있습니다. 하지만 정작 원하는 데이터들은 불행히도 쉽게 정리된 CSV 파일을 사용할 수 없는 경우가 대다수입니다. 여러 웹 사이트에서 데이터를 긁어모으기 위해서 웹스크래핑(웹 크롤링)을 시도해야 합니다.일부 웹 사이트는 CSV 형식으로 데이터를 다운로드하거나 API(응용 프로그램 프로그래밍 인터페이스)를 통해 액세스할 수 있는 데이터 세트를 제공합니다. 그러나 유용한 데이터가 있는 많은 웹 사이트는 이러한 편리한 옵션을 제공하지 않습니다. 예를 들어, 국립 기상청의 웹 사이트를 생각해 보세요. 여기에는 모든 지역에 대한 최신 일기예보가 포함되어 있지만 기상 데이터는 CSV로 또는 API로 액세스할 수 없습니다.

 

이 데이터를 분석하거나 다른 앱에서 사용하고 싶지만 그렇다고해서 방대한 양의 모든 데이터를 복사하여 붙여넣기는 쉽지 않습니다. 웹 스크래핑(웹 크롤링)은 프로그래밍을 이용해서 이러한 문제점을 해결할 수 있도록 도와줍니다. 또한 웹 크롤링은 비즈니스 환경에서 데이터 분석가 및 데이터 과학자에게도 중요한 역할을 할 수 있습니다. 해당 데이터에 회사나 업계에 대한 귀중한 통찰력이 포함되어 있는 경우 웹 크롤링을 사용합니다. 올바른 코드를 사용하면 공용 웹 사이트에 있는 거의 모든 데이터를 다운로드, 필터링 및 웹 크롤링으로 포맷할 수 있습니다.

 

파이썬

파이썬을 활용하는 방법

가장 대표적인 방법으로 Python 프로그래밍 언어의 패키지 중에 Beautiful Soup 라이브러리를 사용하여 웹 크롤링을 수행하는 방법이 있습니다. 물론 다른 프로그래밍 언어들도 웹 크롤링을 할 수 있습니다. 예를 들어, R을 이용한 웹 스크래핑에 대한 튜토리얼도 있습니다. 하지만, 파이썬의 패키지인 Beautiful Soup를 사용하는 것은 웹 크롤링에 대한 가장 쉬운 접근 방법 중 하나입니다. 그 외에도 Request, 셀레니움, Scrapy 등의 다양한 웹 크롤링을 위한 라이브러리들이 존재합니다.

 

웹 크롤링은 불법인가?

불행히도, 여기엔 단도직입적으로 대답할 수 있는 답이 없습니다. 일부 웹 사이트는 크롤링을 명시적으로 허용하거나 허용 안하기도 하지만 대부분의 웹사이트들은 명확한 지침을 제공하지 않습니다. 따라서 웹 사이트를 크롤링하기 전에, 우리는 크롤링에 대한 명시적인 규칙이 있는지 확인하기 위해 이용 약관 페이지를 찾아야 합니다.

그러나 웹 크롤링은 호스트 웹 사이트의 서버 리소스를 소비합니다. 한 페이지만 긁어내도 문제가 되지 않습니다. 하지만 만약 우리의 코드가 10분에 한 번씩 1,000페이지를 스크래핑한다면, 그것은 웹사이트 소유자에게 빠르게 비용이 들 것입니다. 따라서 필요 이상으로 자주 크롤링하지 말고 이왕이면 원하는 데이터를 한번에 긁는 것이 좋습니다. 또한 time.sleep()과 같은 시간기능을 사용하여 코드로 일시 중지를 만드는 것을 고려하는 것도 좋습니다. 왜냐하면 너무 짧은 시간 내에 많은 양의 요청을 보내면 서버로부터 데이터를 보호하기 위해 당신을 차단할 수 있습니다.

반응형

댓글