[Week3] (Web Crawling) 웹 크롤링이란?

jjooki-entist·2022년 9월 7일
0

웹 크롤링

웹 크롤링은 데이터 사이언스를 하는데 있어서 알아두면 굉장히 좋은 스킬이다.
아마 코딩을 배우는 분들이면 많이 들어봤을 것이다.

그렇다면, 웹 크롤링은 대체 무엇일까?
어원을 보면 '웹을 긁어오는 것' 이라는 뜻이다.

💡 자동화된 방법으로 웹을 탐색하는 컴퓨터 프로그래밍

이것이 웹 크롤링이다.

사실 우리는 매일 웹 크롤러(웹 크롤링을 하는 서비스, 프로그램)을 사용한다.
바로 구글, 네이버 같은 포털사이트가 대표적인 웹 크롤링 서비스다.
구글의 초기 비즈니스 모델이 웹 크롤러인 구글 포탈이었다.
지금 IT 생태계의 거대 공룡들이 포탈사이트가 기반인 회사들인 것을 보면 이것이 얼마나 강력한 툴인지 알 수 있다.

물론, 기업만 웹 크롤링을 할 수 있는 것은 아니다.
개인도 파이썬을 가지고 내가 원하는 웹 크롤링을 할 수 있다!

근데 가만 생각해보면, 이미 구글, 네이버라는 세상 편한 웹 크롤러가 있는데 내가 굳이 웹 크롤링을 해야할 이유가 뭘까라는 생각이 들 것이다.

하지만, 구글과 네이버는 단순히 내가 검색한 키워드에 대한 것들만 결과를 보여주는 것이 전부다.
내가 만약 지속적으로 각종 유가증권 정보를 내가 원하는 형태로 한번에 모아서 보고 싶다면, 구글과 네이버가 그것까지 보여주지는 않을 것이다.

웹 크롤링의 목적

웹 크롤링을 하는 많은 이유는 바로 '데이터 수집/가공 및 자동화'에 있다.

간단한 예시를 들자면, 이미 네이버 금융에 들어가면 수많은 종목의 현재가, 시가, 최고가, 최저가, 시가총액, PER, PBR 등 수많은 데이터를 볼 수 있다.

하지만, 우리가 매일같이 들어가서 확인할 것이 아니라면 놓치는 데이터들이 분명 많을 것이다.

또한, 그 데이터를 내가 분석하려면 어디엔가 정리를 해놓고 통계적 분석을 하던지 AI 모델링을 할 것인데 네이버 주식창을 띄워 놓고 수작업으로 데이터를 다 옮길 수는 없는 노릇이지 않겠는가.

그렇기 때문에 웹 크롤링은 실시간성, 자동화, 가공가능한 데이터로의 전환 이 세가지를 하기 위해서는 꼭 필요한 작업이다.

웹 크롤링 방법

파이썬 웹크롤링의 방법론은 다음과 같다.

1. 정보를 가져오고자 하는 타겟 사이트의 URL, header 및 parameter(특정 API의 경우) 정의
2. URL 정보로 requests로 정보 요청
3. (거의 대부분) Text 또는 JSON 정보를 html로 변환
4. html에서 필요한 정보 선별

네이버 메인화면에 있는 이미지들을 긁어오는 것을 위의 방법론대로 간단하게 표현하자면 다음과 같다.

import requests
from bs4 import BeautifulSoup

# url정의
url = 'https://www.naver.com/'
# requsts로 url에 정보요청
resp = requests.get(url)  # url로 로컲컴퓨터에서 데이터를 요청하는 작업
# 정보를 html 변환 (보기 쉽게)
html = BeautifulSoup(resp.text, 'html.parser')
# html 내에서 우리가 보고 싶은 정보만 선별
html.select('img')

대부분의 웹 크롤링은 위의 틀에서 크게 벗어나지 않는다.

여기에서 우리가 원하는 정보를 추출하는 select 부분이 가장 난이도도 높고, 중요한 부분이기 때문에 다음 포스팅에서 자세하게 알아보도록 하자.

profile
데이터 사이언티스트를 꿈꾸는 3년차 제품총괄입니다.

0개의 댓글