• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Python, SQL 게시판 선생님덕분에 서울 부동산가격 크롤링 했습니다 (코드첨부)

선생님덕분에 서울 부동산가격 크롤링 했습니다 (코드첨부)

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #137426

    오형선
    참가자
    컴이 꼬라서 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)
    
    #137427

    오형선
    참가자
    print(df_rank)값은 다음과 같습니다
    역시 송파구 입니다
       지역구 변동 
    0 송파구 9.61
    1 강남구 5.88 
    2 서초구 2.69 
    3 양천구 2.08 
    4 종로구 2.07 
    5 용산구 1.94 
    6 성동구 1.18 
    7 마포구 1.16 
    8 강동구 1.11 
    9 영등포구 1.00 
    10 동대문구 0.86 
    11 서대문구 0.77 
    12 중구 0.63 
    13 성북구 0.53 
    14 동작구 0.44 
    
    
    #137429

    codingapple
    키 마스터
    이제 결과를 차트로 찍어보면 더 있어보이겠군요
3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠