본문 바로가기

파이썬 자동화

파이썬으로 네이버 주식 정보 크롤링 하는 방법

반응형
파이썬으로 주식 정보를 크롤링하면 좋은 점

 빠르게 변화하는 주식 시장에서 나에게 필요한 정보를 수집하고 분석하기 위해서는 단순 반복되는 행위는 자동화가 필수입니다. 왜냐하면 투자자들은 항상 최신 정보를 취득하고 싶어 하기 때문입니다. 이를 위해 주식 정보를 크롤링하여 나에게 필요한 데이터를 수집하는 것은 필수입니다.

 

파이썬 네이버 주식 정보 크롤링하는 방법

주식 정보 크롤링을 위하여 필요한 도구들

 

1. 파이썬 프로그래밍 도구

2. 웹 크롤링 라이브러리 (예: BeautifulSoup, Scrapy)
3. 데이터 분석 도구 (예: Pandas, NumPy)
4. 주식 정보를 크롤링할 웹 사이트 또는 API

 

기초 개념 정리하기

 

코드에서 사용될 라이브러리와 함수의 내용을 먼저 정리해 보겠습니다.

 

  • pandas: 데이터를 다루는 데 사용되며, 데이터프레임을 생성하고 조작하는 데 필요합니다.
  • requests: HTTP 요청을 보내고 응답을 받는 데 사용됩니다. 이를 통해 웹 페이지의 HTML을 가져옵니다.
  • get_stock(code): 제시된 종목 코드에 대한 주식 데이터를 수집합니다. 지정된 종목 코드를 기반으로 네이버 금융에서 일별 시세 페이지의 HTML을 가져옵니다. 이후 받은 HTML을 데이터프레임으로 변환하여 각 페이지의 주식 데이터를 추출하고, 모든 페이지의 데이터를 하나의 데이터프레임으로 병합하여 반환합니다.
  • 헤더 정보 확인하기 : 코드를 작성 시 필요하니 사이트에 들어가서 아래 그림처럼 파란색 부분을 복사해 놓습니다.

클릭하여 User-Agent 확인하기 [필수]

https://www.useragentstring.com/

 

UserAgentString.com - unknown version

 

www.useragentstring.com

 

파이썬으로 네이버 주식 정보 크롤링

 

 

 

크롤링 데이터 대상 확인하기

 

다음은 네이버에서 삼성전자의 일별 시세 정보입니다.

시세 정보의 링크를 확인 바랍니다.

파이썬으로 네이버 주식 정보 크롤링

코드 설명

 

파이썬 네이버 주식 정보 크롤링

 

1. import pandas as pd: Pandas 라이브러리를 pd로 가져옵니다.
2. import requests: requests 라이브러리를 가져옵니다. HTTP 요청을 보내기 위해 사용됩니다.

import pandas as pd
import requests

 

3. def get_stock(code):: get_stock 함수를 정의합니다. 이 함수는 주어진 종목 코드에 대한 주식 데이터를 수집합니다.
4. df = pd.DataFrame(): 빈 데이터프레임 df를 생성합니다. 여기에 수집한 데이터를 저장합니다.

def get_stock(code):
    # 빈 데이터프레임 생성
    df = pd.DataFrame()

 

 

파이썬 네이버 주식 정보 크롤링

 

5. for page in range(1, 11):: 페이지 범위(1부터 10까지)를 반복합니다. 네이버 금융에서 일별 시세를 페이지별로 가져오기 때문에 범위가 필요합니다.

 
    for page in range(1, 11):
        url = f'https://finance.naver.com/item/sise_day.naver?code={code}&page={page}'

        # HTTP 요청 시 User-Agent 헤더 설정
        header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'}
       
        # 주어진 URL에 HTTP 요청을 보내고 응답을 받음
        res = requests.get(url, headers=header)


6. url = f'https://finance.naver.com/item/sise_day.naver?code={code}&page={page}': 주어진 종목 코드와 페이지 번호를 이용하여 네이버 금융의 일별 시세 페이지 URL을 생성합니다.
7. header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'}: HTTP 요청 시 User-Agent 헤더를 설정합니다. 이는 서버에게 요청을 보낸 클라이언트의 정보를 제공합니다.


8. res = requests.get(url, headers=header): 주어진 URL에 HTTP GET 요청을 보내고 응답을 받습니다.

 

파이썬 네이버 주식 정보 크롤링


9. current_df = pd.read_html(res.text, header=0)[0]: 받은 응답을 데이터프레임으로 파싱 하여 가져옵니다. 이때, header=0은 첫 번째 행을 열 이름으로 사용하도록 지정합니다.
10. df = pd.concat([df, current_df], ignore_index=True): 현재 페이지의 데이터프레임을 기존 데이터프레임에 추가합니다. ignore_index=True는 인덱스를 재설정하여 중복을 방지합니다.
11. return df: 모든 페이지를 수집한 후 전체 데이터프레임을 반환합니다.
12. code = '005930': 삼성전자 종목 코드를 지정합니다.
13. df = get_stock(code): get_stock 함수를 사용하여 주어진 종목의 주식 데이터를 수집합니다.
14. print(df): 수집된 데이터프레임을 출력합니다.

 

네이버 증권에서 삼성전자 주가 정보 크롤링하기

 

크롤링 결과입니다.

시세 정보 1~10페이지를 크롤링한 건입니다.

파이썬 네이버 주식 정보 크롤링

 

문자열 기초개념 3분 만에 이해하기 

[파이썬 자동화 기초 정보] - 파이썬 자동화 크롤링을 위한 기초 문자열 포맷팅

 

파이썬 자동화 크롤링을 위한 기초 문자열 포맷팅

파이썬에서 데이터를 관리하고 분석하기 위해서는 크롤링을 위한 기초 개념을 정확히 숙지해야 합니다. 처음에 한 번만 숙지하면 평생 활용이 가능하니 제대로 정리해야 합니다. 기초 개념 정

1.goldentree-asset.com

 

 

 

파이썬으로 네이버 주식 정보 크롤링
파이썬으로 네이버 주식 정보 크롤링
파이썬으로 네이버 주식 정보 크롤링
파이썬으로 네이버 주식 정보 크롤링
파이썬으로 네이버 주식 정보 크롤링

반응형