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)
반응형
'IT > Selenium' 카테고리의 다른 글
DataFrame에서 특정 인덱스의 특정 열(필드) 값을 가져오는 방법 (0) | 2025.05.08 |
---|---|
pandas.DataFrame에 열(컬럼)을 추가하는 방법 (1) | 2025.04.30 |
stale element reference 오류 원인과 해결법 (0) | 2025.04.29 |
리스트의 데이터를 Google Sheets에 저장 (0) | 2025.04.09 |
시크릿모드로 창 열기(ChromeOptions) (0) | 2025.03.22 |