컴이 꼬라서 colab으로 진행했는데 배운거 쓰면서 하니까 흥미도 생기고 좋네요
GPT가 50% 이상 도와줬는데 아래 코드첨부합니다
남은강의도 팍팍 도전해보겠습니다 선생님 감사합니다 X3
from datetime import date
# 오늘 날짜의 ISO 주차 가져오기
iso_week = date.today().isocalendar()[1]
print(f"2025년 3월 24일(오늘)은 {iso_week}주 입니다.")
import requests
import re
import pandas as pd
from bs4 import BeautifulSoup
def 서울부동산(x):
news1 = requests.get(f'https://land.naver.com/news/trendReportView.naver?artcl_seq={x+1833}&artcl_tp_cd=01&page=1')
soup = BeautifulSoup(news1.content, 'html.parser')
#print(soup.prettify())
date = soup.select('#content > div.article_header.wordwrap > h3')[0].text
body = soup.select('#report_body > div:nth-child(9)')[0].text
#주차데이터 산출 -GPT도움
week_match = re.search(r'\[(.*?)\]', date)
week = week_match.group(1) if week_match else ""
# 정규표현식으로 '구'와 변동 값 추출 -GPT도움
matches = re.findall(r'(\w+구)\s([-+]?[0-9]*\.?[0-9]+)%', body)
#데이터프레임 생성 -GPT도움
df = pd.DataFrame([(week, gu, change) for gu, change in matches], columns=['주차', '지역구', '변동'])
# 변동 값을 숫자형(float)으로 변환
df['변동'] = df['변동'].astype(float)
return df
#주차별 부동산값을 합치기위한 임시 DataFrame생성
df_all = pd.DataFrame()
for i in range(1,iso_week):
df = 서울부동산(i)
df_all = pd.concat([df_all, df], ignore_index=True) # 이어붙이기
print(df_all)
def df_hist(state):
#주차별 지역구 이력 조회 함수
df_history = df_all.query(f'지역구 == "{state}"').sort_values('주차').reset_index(drop = True)
df_history = df_history[['지역구', '주차', '변동']]
return df_history
#25년 1주부터의 지역구별 변동합계를 구해보자
df_rank = df_all.groupby('지역구')['변동'].sum().sort_values(ascending = False).reset_index()
print(df_hist("강남구"))
print(df_rank)