매일 손으로 복사하던 웹 데이터, 파이썬으로 자동 수집하기

매일 손으로 복사하던 웹 데이터, 파이썬으로 자동 수집하기 (완성 코드 공개)

파이썬으로 웹페이지 데이터를 자동으로 수집해 엑셀에 저장하는 모습

"오늘 환율은 얼마지?", "경쟁사 상품 가격이 또 바뀌었나?", "오늘 주요 뉴스 제목 정리해야 하는데…"

매일 같은 웹사이트를 열어 필요한 데이터를 눈으로 확인하고 손으로 복사해서 엑셀에 붙여넣는 작업을 반복하고 있지는 않으신가요? 데이터를 수집하는 것 자체가 목적이 아닌데, 수집하는 데 시간을 다 써버리는 경우가 많습니다. 파이썬을 한 번만 세팅해두면 지정한 웹페이지에서 원하는 데이터를 자동으로 가져와 엑셀 파일로 저장할 수 있습니다.

⚠️ 주의: 웹 크롤링은 반드시 해당 사이트의 이용약관을 확인한 후 사용해야 합니다. 크롤링을 명시적으로 금지한 사이트에는 사용하지 마세요. 이 글에서는 크롤링을 허용하는 공개 데이터 사이트를 예시로 사용합니다.

1단계: 준비물 설치

파이썬이 설치되어 있어야 합니다. 없다면 python.org에서 최신 버전을 받아 설치하세요. 설치 시 반드시 "Add Python to PATH"에 체크해야 합니다.

웹 데이터 수집에 필요한 라이브러리 두 가지를 설치합니다. 터미널(윈도우: CMD 또는 파워셸)을 열고 아래 명령어를 실행하세요:

pip install requests beautifulsoup4 pandas openpyxl

requests는 웹페이지를 내려받는 라이브러리이고, beautifulsoup4는 내려받은 페이지에서 원하는 데이터만 골라내는 라이브러리입니다. pandasopenpyxl은 수집한 데이터를 엑셀 파일로 저장하는 데 사용합니다.

💡 이 코드로 할 수 있는 것: 지정한 웹페이지의 HTML에서 원하는 항목(제목, 가격, 날짜 등)을 자동으로 추출해 엑셀 파일로 저장합니다. 네이버 뉴스 헤드라인, 공공 데이터 포털, 환율 정보 페이지 등 HTML 구조로 된 페이지에 적용할 수 있습니다.

2단계: 완성 코드

아래 코드를 그대로 복사해서 메모장에 붙여넣고, web_crawler.py로 저장하세요. 저장 시 파일 형식은 "모든 파일", 인코딩은 UTF-8로 설정합니다.

예시로 네이버 뉴스 헤드라인을 수집해 엑셀로 저장하는 코드입니다.

import requests
from bs4 import BeautifulSoup
import pandas as pd
from datetime import datetime

# ① 설정: 수집할 URL과 저장 경로
URL         = "https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=100"
OUTPUT_PATH = r"C:\Users\내이름\Desktop\뉴스헤드라인.xlsx"   # ← 본인 경로로 수정
SHEET_NAME  = "헤드라인"

# ② 웹페이지 내려받기
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}
response = requests.get(URL, headers=headers, timeout=10)
response.raise_for_status()   # 오류 발생 시 즉시 중단
response.encoding = "utf-8"
print(f"  ✔ 페이지 로드 완료 (상태 코드: {response.status_code})")

# ③ 원하는 데이터 추출
soup = BeautifulSoup(response.text, "html.parser")
articles = soup.select("a.nclicks[href*='article']")   # 뉴스 링크 태그 선택

results = []
for article in articles:
    title = article.get_text(strip=True)
    link  = article.get("href", "")
    if title and len(title) > 5:   # 너무 짧은 텍스트 제외
        results.append({"제목": title, "링크": link})

print(f"  ✔ 수집된 항목: {len(results)}건")

# ④ 엑셀로 저장
if results:
    df = pd.DataFrame(results).drop_duplicates(subset="제목")
    df.insert(0, "수집일시", datetime.now().strftime("%Y-%m-%d %H:%M"))
    df.to_excel(OUTPUT_PATH, sheet_name=SHEET_NAME, index=False)
    print(f"\n✅ 완료! {len(df)}건 저장 → {OUTPUT_PATH}")
else:
    print("\n⚠ 수집된 데이터가 없습니다. URL 또는 태그 선택자를 확인하세요.")

3단계: 실행 방법

  1. 코드 ① 설정의 OUTPUT_PATH에 저장할 엑셀 파일 경로를 입력합니다.
  2. 수집할 사이트가 다르다면 URL을 원하는 페이지 주소로 바꿉니다.
  3. 터미널에서 아래 명령어로 실행합니다:
python web_crawler.py

정상 실행 시 터미널에 이렇게 출력됩니다:

  ✔ 페이지 로드 완료 (상태 코드: 200)
  ✔ 수집된 항목: 28건

✅ 완료! 26건 저장 → C:\Users\내이름\Desktop\뉴스헤드라인.xlsx

엑셀 파일을 열면 수집일시, 제목, 링크가 열별로 정리된 표가 만들어져 있습니다. 스크립트를 실행할 때마다 최신 데이터로 덮어씌워집니다.


4단계: 자주 발생하는 오류와 해결법

오류 1: ModuleNotFoundError: No module named 'bs4'

beautifulsoup4가 설치되지 않은 경우입니다. 설치 명령어에서 bs4가 아닌 반드시 beautifulsoup4로 입력해야 합니다.

python -m pip install requests beautifulsoup4 pandas openpyxl

오류 2: 수집된 데이터가 0건으로 나옴

웹사이트가 HTML 구조를 변경했거나, 로그인 후에만 접근 가능한 페이지일 때 발생합니다. 브라우저에서 해당 페이지를 열고 F12(개발자 도구) → Elements 탭에서 수집하려는 요소의 태그와 클래스명을 직접 확인한 뒤 코드 ③의 soup.select() 안의 선택자를 수정해야 합니다.

오류 3: requests.exceptions.ConnectionError

인터넷 연결 문제이거나 해당 사이트가 크롤러 접근을 차단한 경우입니다. headersUser-Agent 값이 코드에 제대로 들어가 있는지 확인하세요. User-Agent가 없으면 봇으로 판단해 차단하는 사이트가 많습니다.


응용: 매일 자동 실행하도록 예약하고 싶다면

윈도우 작업 스케줄러를 활용하면 매일 정해진 시간에 스크립트를 자동 실행할 수 있습니다.

  1. 윈도우 검색창에 "작업 스케줄러"를 입력해 실행합니다.
  2. 오른쪽 패널에서 "기본 작업 만들기"를 클릭합니다.
  3. 이름 입력 → 트리거: "매일" 선택 → 실행 시간 설정 (예: 오전 9시)
  4. 동작: "프로그램 시작" 선택 → 프로그램란에 python, 인수란에 web_crawler.py의 전체 경로 입력
  5. 완료 후 저장하면 매일 지정 시간에 자동으로 실행됩니다.
💡 이전 게시글과 결합하면: 수집한 데이터를 차트 자동 저장 편의 코드와 연결하면, 웹에서 데이터를 수집하고 차트까지 자동으로 만드는 파이프라인을 구성할 수 있습니다.

핵심 요약

  • 준비물: Python + requests + beautifulsoup4 + pandas + openpyxl 설치
  • 설정: 수집할 URL과 저장 경로, 태그 선택자만 수정
  • 실행: 터미널에서 python web_crawler.py 입력
  • 결과: 수집일시 포함 데이터가 엑셀 파일로 자동 저장, 실행마다 최신 데이터로 업데이트

이 코드를 응용하면 여러 페이지를 순차적으로 수집하거나, 수집한 데이터를 이메일로 자동 발송하는 것도 가능합니다.

이 블로그의 인기 게시물

카카오톡 용량 줄이기! 대화방 파일 삭제로 스마트폰 용량 확보법 (1분 해결)

느려진 구글 크롬 속도 2배 빨라지는 3가지 설정 방법 (2026년 최신 가이드)

업무 속도 3배 빨라지는 윈도우 기본 캡처 도구 단축키 및 200% 활용 꿀팁