파이썬 크롤링 기본 코드 예제

파이썬으로 웹 크롤링 시작하기

최근 들어 데이터 수집의 중요성이 날로 커지고 있습니다. 이러한 이유로 많은 개발자와 데이터 분석가들이 웹 크롤링을 통해 다양한 정보를 수집하고 있습니다. 특히, 파이썬은 간편한 문법과 강력한 라이브러리 덕분에 웹 크롤링의 인기가 높은 프로그래밍 언어 중 하나입니다. 이번 글에서는 파이썬으로 웹 크롤링을 시작하는 방법과 몇 가지 기본 예제를 소개하도록 하겠습니다.

파이썬 환경 설정

웹 크롤링을 시작하기 전에, 먼저 파이썬 환경을 설정해야 합니다. 여기서는 Visual Studio Code와 같은 IDE를 사용하여 작업하는 방법을 살펴보겠습니다. 또한, 필요한 라이브러리인 requests와 BeautifulSoup를 설치하는 방법에 대해서도 설명하겠습니다.

  • Visual Studio Code 설치: 공식 홈페이지에서 VS Code를 다운로드하여 설치합니다.
  • 필요한 라이브러리 설치: 명령 프롬프트를 열고 다음 명령어를 입력하여 requests와 BeautifulSoup를 설치합니다.

pip install requests beautifulsoup4

설치가 완료되면, 웹 크롤러의 작성을 시작할 준비가 완료된 것입니다.

웹 페이지 요청하기

웹 크롤링의 첫 단계는 특정 웹 페이지에 요청을 보내 HTML 문서를 받아오는 것입니다. 요청을 보내기 위해 requests 라이브러리를 활용할 수 있습니다. 아래는 네이버 금융의 특정 주식 정보 페이지를 요청하는 기본 코드입니다.

import requests
url = 'https://finance.naver.com/item/main.nhn?code=005930' # 삼성전자 주식 페이지
response = requests.get(url)
if response.status_code == 200:
  print("웹 페이지 요청 성공")
else:
  print("웹 페이지 요청 실패:", response.status_code)

위 코드는 요청을 보내고, 결과가 성공적인 경우 페이지의 HTML을 받아오는 기본적인 구조입니다.

HTML 파싱하기

받아온 HTML 문서에서 필요한 정보를 추출하기 위해서는 BeautifulSoup 라이브러리를 사용하여 HTML을 파싱해야 합니다. 다음은 해당 페이지에서 주식 정보를 추출하는 예제입니다.

from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.select_one('h2').get_text() # 주식의 이름
price = soup.select_one('strong').get_text() # 현재 주식 가격
print("주식명:", title)
print("현재 가격:", price)

위의 코드에서 select_one() 메서드를 사용하여 특정 HTML 요소를 선택하고, get_text()를 통해 그 텍스트를 추출합니다.

예외 처리 및 문제 해결

웹 크롤링을 하다 보면 예상치 못한 오류가 발생할 수 있습니다. 예를 들어, 요청한 웹 페이지가 존재하지 않거나, 원하는 데이터가 없을 수도 있습니다. 이런 경우를 대비하여 예외 처리를 잘 해주는 것이 중요합니다. 아래는 간단한 예외 처리 방법입니다.

try:
  response = requests.get(url)
  response.raise_for_status() # HTTP 오류 발생시 예외 발생
except requests.HTTPError as e:
  print("HTTP 오류 발생:", e)
except Exception as e:
  print("예상치 못한 오류 발생:", e)

데이터 저장하기

수집한 데이터를 활용하려면, 필요한 정보를 엑셀 파일이나 CSV 파일로 저장하는 것이 필요합니다. 이를 위해 pandas 라이브러리를 사용할 수 있습니다. pandas는 데이터 분석에 유용한 도구로, 다음과 같은 코드로 데이터를 저장할 수 있습니다.

import pandas as pd
# 수집한 데이터 예시
data = {
  '주식명': [title],
  '현재 가격': [price],
}
df = pd.DataFrame(data)
df.to_csv('stock_data.csv', index=False) # CSV 파일로 저장

결론

이번 글을 통해 파이썬을 이용한 웹 크롤링의 기본 개념과 실습 예제를 살펴보았습니다. 웹 크롤링은 데이터 수집을 위한 유용한 기술이며, 이를 통해 다양한 정보를 수집하고 활용할 수 있습니다. 하지만 크롤링을 할 때는 각 웹사이트의 정책을 준수하고, 무분별한 요청으로 서버에 부담을 주지 않도록 주의해야 합니다. 여러분이 웹 크롤링을 통해 더 많은 데이터를 효과적으로 수집하고 유용한 정보를 얻을 수 있기를 바랍니다.

자주 묻는 질문과 답변

파이썬으로 웹 크롤링을 어떻게 시작하나요?

웹 크롤링을 시작하기 위해서는 먼저 파이썬을 설치하고, 필요한 라이브러리인 requests와 BeautifulSoup를 설치해야 합니다. 이후 웹 페이지에 요청을 보내고 HTML을 받아오는 작업을 수행하면 됩니다.

어떤 라이브러리를 사용해야 하나요?

주로 requests와 BeautifulSoup 라이브러리를 사용합니다. requests는 웹 페이지에 요청을 보내는 데 유용하며, BeautifulSoup는 HTML 문서를 쉽게 파싱할 수 있도록 도와줍니다.

HTTP 오류가 발생하면 어떻게 해야 하나요?

HTTP 오류가 발생하면, response.raise_for_status()를 사용하여 문제를 찾을 수 있습니다. 오류 원인을 잘 살펴보고 적절한 조치를 취하는 것이 중요합니다.

수집한 데이터를 어떻게 저장하나요?

수집한 데이터는 pandas 라이브러리를 통해 CSV 파일로 저장할 수 있습니다. DataFrame을 생성하고, 원하는 형식으로 데이터를 정리한 후, to_csv() 메서드를 이용하여 저장하면 됩니다.

웹 크롤링을 할 때 주의할 점은 무엇인가요?

웹 크롤링 시 각 사이트의 이용 약관을 준수해야 하며, 무분별한 요청으로 서버에 부하를 주지 않도록 조심해야 합니다. 또한, 너무 많은 데이터를 한 번에 요청하는 것은 피하는 것이 좋습니다.

답글 남기기