한때 웹 크롤링은 비교적 간단한 작업이었습니다. 그러나 최근의 웹 사이트는 JavaScript로 동적으로 생성되는 경우가 많아, 정적인 HTML 페이지만 크롤링하는 것으로는 충분하지 않습니다. 이때 requests-html
라이브러리가 유용하게 사용될 수 있습니다. requests-html
은 백앤드에 기반한 웹 페이지 크롤링에 매우 적합한 라이브러리입니다.
이번 글에서는 requests-html
을 사용하여 크롤링된 데이터를 가져오고, 그 데이터를 시각화하는 방법을 다룰 것입니다.
설치
우선 requests-html
라이브러리를 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 설치할 수 있습니다.
pip install requests-html
예제
간단한 예제를 통해 크롤링된 데이터를 시각화하는 방법을 알아보겠습니다. 이 예제에서는 Python 웹 크롤링 라이브러리인 requests-html
을 사용하여 삼성전자의 주식 가격 데이터를 가져온 다음, 이를 시각화하는 방법을 소개합니다.
먼저, requests-html
을 import 한 다음, 크롤링할 URL을 지정합니다.
from requests_html import HTMLSession
# 삼성전자 주식 페이지 URL
url = 'https://finance.naver.com/item/sise.nhn?code=005930'
다음으로, HTMLSession
을 사용하여 웹 페이지에 대한 HTML 세션을 만듭니다.
session = HTMLSession()
r = session.get(url)
이제 HTML 세션을 사용하여 웹 페이지에서 필요한 데이터를 추출할 수 있습니다. 여기서는 테이블 형태의 주식 가격 데이터를 추출합니다.
table = r.html.find('#_nowVal')[0].text
다음으로, 시각화를 위해 matplotlib
라이브러리를 import하고, 주식 가격을 그래프로 그립니다.
import matplotlib.pyplot as plt
# 시각화할 데이터 (임의의 가상 데이터 사용)
dates = ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04']
prices = [100, 105, 98, 110]
plt.plot(dates, prices)
plt.xlabel('날짜')
plt.ylabel('주식 가격')
plt.title('삼성전자 주식 가격 변동')
plt.xticks(rotation=45)
plt.show()
이제 코드를 실행해보면, 크롤링된 삼성전자 주식 가격 데이터가 선 그래프로 시각화되는 것을 확인할 수 있습니다.
결론
이번 글에서는 requests-html
을 사용하여 크롤링된 데이터를 가져오고, 이를 시각화하는 방법에 대해 알아보았습니다. requests-html
을 사용하면 동적 웹 페이지에서 데이터를 쉽게 가져올 수 있으며, matplotlib
과 같은 시각화 라이브러리를 사용하여 데이터를 적절히 시각화할 수 있습니다. 크롤링된 데이터를 시각화함으로써, 데이터의 패턴이나 동향을 쉽게 파악할 수 있습니다.