반응형

1. 현재가 크롤링

   - 현재가를 크롤링해서 엑셀에 저장

 

네이버 금융 > 삼성전자 검색

https://finance.naver.com/item/sise.naver?code=005930 

(code파라미터 값이 삼성전자의 종목코드)

 

개발자도구(F12) 눌러서 현재가 가져오기위한 태그 확인 후 id값 추출

위에 code파라미터 값을 다른 종목코드로 변경 시 해당기업의 현재가 조회됨을 확인

그러므로 코드종목값을 받아서 크롤링해보도록 하자

코드 작성(1)

import requests
from bs4 import BeautifulSoup

url = "https://finance.naver.com/item/sise.naver?code=005930"
response = requests.get(url);
html = response.text
soup = BeautifulSoup(html, 'html.parser')
price = soup.select_one('#_nowVal').text
print("현재가 :"+ price)
# ,제거
price = price.replace(',','')
print(price)

현재가 출력 결과

코드작성(2)

import requests
from bs4 import BeautifulSoup

# 종목 코드 리스트
codes = [
    '005930', #삼성전자
    '000660', #sk하이닉스
    '035720' #카카오
]

#for문쓸때 내용은 한칸씩 들여쓰기
for code in codes:
    url = f"https://finance.naver.com/item/sise.naver?code={code}"
    response = requests.get(url);
    html = response.text
    soup = BeautifulSoup(html, 'html.parser')
    price = soup.select_one('#_nowVal').text
    print("현재가 :"+ price)
    # ,제거
    price = price.replace(',','')
    print(price)

리스트에 담긴 코드종목들의 현재가 출력 결과

 

2. 수집한데이터 엑셀에 저장하기

코드 생성

import requests
from bs4 import BeautifulSoup
import openpyxl

fpath = r'C:\startcoding\Chapter03\테스트데이터.xlsx'
wb = openpyxl.load_workbook(fpath)
ws = wb.active #현재 활성화 된 시트 선택(기본시트)

# 종목 코드 리스트
codes = [
    '005930', #삼성전자
    '000660', #sk하이닉스
    '035720' #카카오
]

row =2 #행값

#for문쓸때 내용은 한칸씩 들여쓰기
for code in codes:
    url = f"https://finance.naver.com/item/sise.naver?code={code}"
    response = requests.get(url);
    html = response.text
    soup = BeautifulSoup(html, 'html.parser')
    price = soup.select_one('#_nowVal').text
    price = price.replace(',','')
    print(price)
    ws[f'B{row}'] = int(price)
    row = row+1
    
wb.save(fpath)

엑셀파일 확인

('현재가' B셀 B2,B3,B4에 내용생성됨을 확인)

 

 

[참고] 엑셀 만들기 / 엑셀 불러오기

  - openpyxl 라이브러리 설치

    openpyxl  : 파이썬에서 엑셀을 쉽게 다룰 수 있도록 도와주는 라이브러리

 

명령어 : pip install openpyxl

설치완료

[엑셀만들기] 코드 생성

import openpyxl

#1) 엑셀 만들기
wb = openpyxl.Workbook()

#2) 엑셀 워크시트 만들기
ws = wb.create_sheet('테스트엑셀') #워크시트이름

#3) 데이터 추가하기
ws['A1'] = '번호' #셀 값 설정
ws['B1'] = '성명'

ws['A2'] = '1' 
ws['B2'] = '이은주'

#4) 엑셀 저장하기
wb.save('테스트데이터.xlsx') #저장파일명

#참고 절대경로로 Chapter03안에 엑셀파일 생성
#이때 복사한 경로 그대로 사용하려면 문자열앞에 r 써주면됨(경로 str앞에 r붙이기)
#\ 은 Escape Character 이므로 파이썬에서 읽어들일 수없음 (\\또는 /로 변경해야함)
wb.save(r'C:\startcoding\Chapter03\테스트데이터.xlsx')

코드실행 시 STARTCORDING 아래 xlsx파일이 생성됨을 확인

절대경로 통해서 Chapter03폴더안에 생성됨도 확인

엑셀파일 확인

 

[엑셀 불러오기] 코드생성

import openpyxl

fpath = r'C:\startcoding\Chapter03\테스트데이터.xlsx'
# 1) 엑셀 불러오기
wb = openpyxl.load_workbook(fpath)

# 2) 엑셀 시트선택
ws = wb['테스트엑셀']

#3) 데이터 수정하기
ws['A3'] = 456
ws['B3'] = '누구누구'

#4) 엑셀저장하기
wb.save(fpath)

 

엑셀파일 확인_경로 내 파일내용이 수정됨을 확인

+ Recent posts