본문 바로가기
방구석코딩

파이썬 웹 크롤링 하기 위해 먼저 알아야 할 것 (feat. 판다스)

by 석세상 2023. 1. 9.
반응형

데이터 분석을 위해서는 먼저 데이터를 수집해야 하는데요. 웹페이지에 있는 정보를 모아야 하는 경우가 있습니다. 이런 웹에서 제공하고 있는 데이터는 어떻게 가져올 수 있을까요? 파이썬을 이용해서 가져오는 방법에 대해 알아보겠습니다.

 

웹 크롤링이란

웹페이지에 있는 데이터를 가져오기 위해서는 웹 크롤링이라는 방법으로 데이터를 수집할 수 있는데요. 웹 크롤링은 컴퓨터 프로그램을 사용하여 자동으로 인터넷을 검색하고 웹 사이트에서 데이터를 수집하는 프로세스입니다.

판다스(Pandas)는 파이썬의 데이터 분석 라이브러리로 대규모의 복잡한 데이터 세트 작업을 위한 도구를 제공합니다. 웹 크롤링에서 판다스를 사용하는 한 가지 방법은 웹 사이트에서 판다스 데이터 프레임으로 데이터를 가져오는 것입니다.

 

이 작업은 웹 페이지에서 테이블을 추출하여 데이터 프레임으로 변환할 수 있는 'read_html' 함수를 사용하여 수행할 수 있습니다. 예를 들어 다음과 같습니다.

 

 

판다스를 이용한 웹 크롤링 방법

아래는 판다스를 이용해서 웹페이지의 정보를 가져오는 방법인데요. 판다스는 파이썬에 기본 설치된 패키지가 아니기 때문에 맨 처음 보이는 '!pip install pandas'를 실행하여 설치해 주어야 합니다.

728x90

한번 설치되면 다음부터는 실행할 필요가 없기 때문에 이후부터는 컴퓨터 전원을 끈 이후에도 'import~' 부분부터 실행해주면 됩니다.  '!pip install pandas'로 설치하는 방법은 주피터 노트북에서 사용하는 방법이니 다른 툴을 이용해서 사용하는 분이라면 설치방법이 조금 다를 수 있습니다.

 

주피터 노트북이란 파이썬 코딩 시 웹 페이지에서 조금 더 직관적으로 작성할 수 있는 프로그램입니다. 주피터 노트북을 사용하기 위해서는 아나콘다를 설치해야만 가능합니다.

 

해당 프로그램의 설치 방법은 아래 링크를 참조해 주세요

 

[파이썬] #00. 파이썬 아나콘다(Anaconda) 설치방법

오늘은 파이썬 아나콘다를 설치해보도록 하겠다. 이전에 파이썬 설치방법을 해봤다면 오늘은 아나콘다라는 것을 설치할 텐데, 아나콘다는 '왜 설치하느냐' 하면 지난번에 파이썬 설치 후 실행

gusugi.tistory.com


!pip install pandas

 

import pandas as pd

url = 'https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(nominal)'

df = pd.read_html(url)[0]
print(df)


다음으로 import 부분은 설치한 판다스 패키지를 불러오는 부분이고, as 뒤의 pd는 판다스 패키지의 약어라고 생각하시면 됩니다. 위의 예제에서 'df = pd.read_html~'로 작성되었는데요. 'df = pandas.read_html~'로 작성해도 동일한 결과가 생성됩니다. 패키지명이 긴 경우 간결하게 사용하기 위한 별칭이라고 생각하시면 됩니다.

 

url 부분은 내가 정보를 가져올 웹페이지의 주소를 작은따옴표 안에 넣으면 되는데요. 해당 페이지 주소를 넣으면 url이라는 변수로 웹페이지의 정보를 불러옵니다. 

 

다음으로 pd.read_html(url)[0]을 보시면 앞에 가져온 url 정보를 pd.read_html로 읽어 들이는 부분입니다. 앞에서 url에 웹 주소의 정보를 입력했기 때문에 pd.read_html(url)에 있는 url은 해당 주소 정보가 들어있습니다. 이 정보를 read.html로 읽어 들이는 것이죠.

처음 보면 왜 주소를 불러왔는데 다시 pd.read_html을 이용해서 가져오는지 의문이 들 수 있을 텐데요. url에서는 웹 주소만 가져온 거고 이걸 그대로 데이터화하지는 못합니다. 그냥 우리가 텍스트에 링크를 걸어둔 것과 같은 것이라 생각하면 됩니다. 그러면 주소를 누르면 해당 주소의 웹페이지가 뜨는 것이지 데이터를 가져오는 것이 아닌 것이죠.

 

따라서 이 주소에 있는 정보를 데이터화하기 위해 pd.read_html을 사용하는 것입니다. 또한 웹 페이지는 우리 눈에는 하나의 페이지로 보이지만 여러 개로 쪼개져 구성되어 있는데요. 그중 첫 번째 칸에 들어있는 정보를 가져오겠다는 의미로 [0]을 입력한 것입니다.

 

일단 웹 크롤링을 접해보지 않은 분들에게는 매우 생소하기 때문에 일단 기능이 실행되는 부분만 먼저 알아보았습니다. 여기까지만 실행해서는 아직 아무것도 얻을 수 있는 것은 없다고 봐도 무방한데요. 일단 개념적인 부분을 익히기 위해서 간단하게만 먼저 알아봤습니다. 

BeautifulSoup 라이브러리를 사용하여 HTML 코드를 구문 분석하고 특정 데이터 요소를 추출하여 테이블이 없는 웹 사이트에서 데이터를 긁어내는 Panda를 사용할 수도 있습니다. 이 프로세스는 더 복잡한 프로세스일 수 있지만 테이블에 구조화된 데이터가 없는 웹 사이트에서 데이터를 추출할 수 있습니다.

 

최소한 BeautifulSoup까지는 이용해야 어느 정도 데이터화를 할 수 있는데요. 이 부분은 천천히 알아보도록 하겠습니다.

 

웹 데이터 수집하는 부분에 대해 간단하게 알아보았는데요. 어떠신가요? 데이터 분석을 하기 위해 먼저 이미 제공돼야 하는 데이터를 모으는 것 역시 많은 노력이 필요합니다. 사실 데이터 수집이 분석에 있어 가장 중요한 부분이며 시간을 많이 투자하는 것 중 하나입니다.

 

이렇게 데이터를 수집한 뒤 데이터를 정리하고, 이를 이용해서 데이터 정제, 기초분석, 변수생성, 분석모형 개발 등이 이루어지는데요. 저 역시 파이썬은 처음 접하다 보니 어디서부터 시작해야 할지 한 번에 감이 오지 않아 이해가 필요한 부분에 대한 설명과 순서대로 하나씩 차근차근 같이 배워나갔으면 합니다.

728x90
반응형

댓글