우당탕탕 개발공부

[커널 아카데미] 데이터 분석 부트캠프 18기_ 4주차 학습일지 본문

⌛ BootCamp/[커널아카데미] 데이터분석 부트캠프

[커널 아카데미] 데이터 분석 부트캠프 18기_ 4주차 학습일지

냥냥서 2025. 3. 21. 17:55

 

0317

[ 데이터 분석을 위한 Tool Python ]

더보기

오늘은 강사님께서 단원 마무리 느낌으로 ~ gpt활용해서 간단한 프로젝트를 만드는 것을 알려주셨다!

너무 신기하고 무엇보다 .... 재밌다.....!!!!!!!!!!!!!!!!! 재밌어서 행복함

확실히 문법 이론만 배울떄랑 실습할때 다른듯.. 물론 문법을 알아야 하지만! 실무에서 언제, 어떻게 사용하냐도 중요하기 때문에! 실습하면서 실력을 쌓는 것도 좋은 것 같다!

 

 

 


데이터 수집 ( Crawling )

 

1. 필요한 라이브러리 설치

%pip install webdriver-manager selenium

 

2. Chrome Dviver 다운로드

from webdriver_manager.chrome import ChromeDriverManager

ChromeDriverManager().install()

 

3. 브라우저 오픈

# 크롬 브라우저 실행!
from selenium import webdriver
browser = webdriver.Chrome()

 

 * 만약 브라우저가 끊긴경우!

# 연결 끊긴 경우 브라우저 다시 실행
browser = webdriver.Chrome()

 

 

🎯  네이버 날씨 크롤링

# 브라우저 이동 -> get(url)
url = 'http://weather.naver.com'
browser.get(url)

 

>> 현재 온도 가져오기

# 요소를 찾아주기 위해서서 import
from selenium.webdriver.common.by import By

data = browser.find_element(By.CLASS_NAME,'current').text
print(data)
data.split('\n')[1]

 

온도만 확인하기 위해 ! split( )을 사용했음


멀티 데이터는 어떻게 가져올까?

> 네이버 부동산 url 사용

 

find_elements

# s를 붙이는 순간 -> list형으로 바뀜

datas = browser.find_elements(By.CLASS_NAME, 'item')

type(datas)
print(datas)

 

이때 brower이 아닌 i 로 바꿔야 <부모> 안에 내용들이 뽑힘!!

data_list = []

for i in datas:
    동정보 = i.find_element(By.CLASS_NAME,'item_title').text
    가격 = i.find_element(By.CLASS_NAME,'price_line').text
    매물 = i.find_element(By.CLASS_NAME,'info_area').text
    
    
    data_list.append({
        '동' : 동정보,
        '가격' : 가격,
        '매물정보' : 매물
    })

 딕셔너리 형태로 저장한 후,  데이터 프레임으로 만들어준다.

import pandas as pd

df = pd.DataFrame(data_list)
df

 

💡 한글 깨짐이 있다면 -->  encoding='utf-8-sig'

result = df.to_csv('네이버 부동산 실습.csv', encoding='utf-8-sig', index = False)
result

 

+ 추가 실습공부

 

파이썬 데이터 분석 - 네이버 웹툰 데이터 크롤링 실습

오늘 배운 크롤링 기술을 바탕으로, 에 연재하는 을 복습 겸 실습해 보았다!  1. 환경 만들기from selenium import webdriverfrom selenium.webdriver.common.by import Bybrowser = webdriver.Chrome()  2. 크롤링할 url 가져

rlory.tistory.com

 

0319

[ 데이터 분석을 위한 Tool Python ]

더보기

1페이지부터 원하는 페이지까지 정보 수집해보기 !

 

[1] get 메소드 사용

> 먼저 단일 정보를 가져오는 것 처럼 코드 작성

# 2) start값을 i값으로 치환
# 3) 브라우저를 해당 url로 이동  => brower.get()

import time

for i in range(0,51, 10):
    url = f'https://www.google.com/search?q=검색어title&start={i}'
    
    time.sleep(5)
    browser.get(url)

q= 원하는 검색어 title을 입력하면 된다! 우리는 start만 신경쓰기

 

data_list = []

for page in range(0,31, 10):
    url = f'https://www.google.com/search?q=검색어&start={page}'
    # 데이터가 잘 들어오는 지 확인하기!
    print(f'{page}로 이동중입니다')
    browser.get(url)
    
    datas = browser.find_elements(By.CLASS_NAME,'SoaBEf')
    
    for i in datas:
        제목 = i.find_element(By.CLASS_NAME,'GI74Re').text
        언론사 = i.find_element(By.CLASS_NAME,'MgUUmf').text
        내용 = i.find_element(By.CLASS_NAME,'GI74Re').text
        작성일 = i.find_element(By.CLASS_NAME,'rbYSKb').text
        링크 = i.find_element(By.CLASS_NAME, 'WlydOe').get_attribute('href')
        
        data_list.append({
            '언론사': 언론사,
            '제목': 제목,
            '내용': 내용,
            '작성일': 작성일,
            '링크': 링크,
        })

 

# 3) 데이터프레임 형태로 만들어 주기
# 4) csv형식으로 저장

import pandas as pd

df = pd.DataFrame(data_list)
df.to_csv('구글_뉴스_수집.csv', encoding='utf-8-sig')
df

 

0320

[ Python 실무 적용 실습 ]

 

 

파이썬 데이터 분석 - 사용자 행동 로그 데이터_퍼널 분석

더보기- event_time: 이벤트가 발생한 시각- event_type: 이벤트 종류 - view: 상품을 조회- cart: 상품을 카트에 추가 - remove_from_cart: 상품을 카트에서 제거- purchase: 구매- product_id: 상품번호- category_id: 카

rlory.tistory.com

 

 

0321

[ 데이터 분석을 위한 Tool Python ]

더보기

데이터 분석 기초

 

1. Series

: 1개의 컬럼값으로 구성된 1차원 데이터 셋
 
data = ["A", "B", "C", "D", "E"] # 컬럼

se = pd.Series(data)
se

 

데이터 셀렉션

data = {
    'country' : ["kor", "usa", "china", "japan"],
    'rank' : [1,2,3,4],
    'grade' : ["A", "B", "C", "D"],
}

df = pd.DataFrame(data)
df

 

1) df.loc[ 인덱스명, 컬럼명 ]

df.loc[2, ['country', 'rank']]
df.loc[0, 'rank']
df.loc[:, ['country','rank']]
df.loc[df['rank'] > 3, ['country','rank']]

 

2) iloc[인덱스, 컬럼인덱스] => 위치(location) 기반

숫자로만 데이터를 불러옴!

df.loc[0] # 인덱스 이름이 0
df.iloc[0] # 인덱스 값이 0

--> 생략이 너무 많이 되어 사용을 지양 ~