본문 바로가기
IT/Selenium

Selenium으로 크롤링한 데이터를 엑셀에 저장하기

by 소꼼냥의 일상 2025. 4. 9.
728x90
반응형
import pandas as pd

# 데이터를 엑셀에 맞게 평탄화 (date, title, content)
flattened_data = []

for item in data:
    date = item["date"]
    for section in item["sections"]:
        flattened_data.append({
            "Date": date,
            "Section Title": section["title"],
            "Section Content": section["content"]
        })

# DataFrame으로 변환
df = pd.DataFrame(flattened_data)

# 엑셀로 저장
df.to_excel("crawled_data.xlsx", index=False)

셀레니움으로 수집한 리스트 데이터를 엑셀(.xlsx) 파일로 저장하려면 openpyxl이나 pandas 라이브러리를 사용할 수 있어요. pandas를 이용한 방법을 알아 보겠습니다.


✅ 1. 먼저 pandas 설치 (한 번만)

pip install pandas openpyxl
 

✅ 2. 리스트 데이터를 엑셀로 저장하는 예제 코드

예시 리스트 구조 (Selenium 크롤링 결과):

data = [
    {
        "date": "2025.04.09 14:33",
        "sections": [
            {"title": "◇ 시장 요약", "content": "오늘 코스피 지수는 상승 마감했다."},
            {"title": "◇ 외환 동향", "content": "달러/원 환율은 하락세를 보였다."}
        ]
    },
    {
        "date": "2025.04.08 15:00",
        "sections": [
            {"title": "◇ 투자 동향", "content": "외국인 투자자 순매수 지속 중."}
        ]
    }
]
 

👉 이 데이터를 Excel 파일로 저장하는 코드:

import pandas as pd

# 데이터를 엑셀에 맞게 평탄화 (date, title, content)
flattened_data = []

for item in data:
    date = item["date"]
    for section in item["sections"]:
        flattened_data.append({
            "Date": date,
            "Section Title": section["title"],
            "Section Content": section["content"]
        })

# DataFrame으로 변환
df = pd.DataFrame(flattened_data)

# 엑셀로 저장
df.to_excel("crawled_data.xlsx", index=False)​

📄 결과

이 코드는 현재 경로에 crawled_data.xlsx 파일을 생성하며, 다음과 같은 열로 구성됩니다:

DateSection  TitleSection  Content
2025.04.09 14:33 ◇ 시장 요약 오늘 코스피 지수는 상승 마감했다.
2025.04.09 14:33 ◇ 외환 동향 달러/원 환율은 하락세를 보였다.
2025.04.08 15:00 ◇ 투자 동향 외국인 투자자 순매수 지속 중.

 

✅ 날짜 포함된 엑셀 저장 코드

엑셀 파일명에 오늘 날짜를 자동으로 붙이는 방법은 datetime 모듈을 활용하면 간단하게 처리할 수 있어요. 아래는 yyyy-mm-dd 형식으로 날짜를 붙여 저장하는 예제입니다.

import pandas as pd
from datetime import datetime

# 오늘 날짜 구하기
today_str = datetime.today().strftime("%Y-%m-%d")  # 예: '2025-04-09'

# 파일 이름에 날짜 붙이기
file_name = f"crawled_data_{today_str}.xlsx"

# 예시 리스트 데이터
data = [
    {
        "date": "2025.04.09 14:33",
        "sections": [
            {"title": "◇ 시장 요약", "content": "오늘 코스피 지수는 상승 마감했다."},
            {"title": "◇ 외환 동향", "content": "달러/원 환율은 하락세를 보였다."}
        ]
    },
    {
        "date": "2025.04.08 15:00",
        "sections": [
            {"title": "◇ 투자 동향", "content": "외국인 투자자 순매수 지속 중."}
        ]
    }
]

# 리스트 평탄화
flattened_data = []
for item in data:
    date = item["date"]
    for section in item["sections"]:
        flattened_data.append({
            "Date": date,
            "Section Title": section["title"],
            "Section Content": section["content"]
        })

# DataFrame 생성 및 엑셀 저장
df = pd.DataFrame(flattened_data)
df.to_excel(file_name, index=False)

print(f"엑셀 파일 저장 완료: {file_name}")

 

✅ 저장 경로 확인하는 방법

엑셀 파일을 저장할 때 경로를 지정하지 않았다면, 기본적으로 **현재 실행 중인 파이썬 스크립트의 위치(작업 디렉토리)**에 저장됩니다.

df.to_excel("crawled_data_2025-04-09.xlsx", index=False)
 

이렇게 쓰면, 파이썬 파일을 실행한 위치에 엑셀 파일이 저장됩니다.

import os print("현재 작업 디렉토리:", os.getcwd())
 

이 코드를 실행하면, 엑셀이 저장되는 정확한 경로가 출력됩니다.


✅ 저장 경로를 직접 지정하고 싶다면?

예를 들어 바탕화면에 저장하고 싶다면 이렇게 쓸 수 있어요:

file_path = os.path.expanduser("~/Desktop/crawled_data_2025-04-09.xlsx") 
df.to_excel(file_path, index=False)

 

반응형