'주식정보크롤링'에 해당되는 글 1건

  1. 2023.08.05 [파이썬] 주식 정보 크롤링 하기, 삼성전자 사례를 중심으로
반응형

1. 삼성전자 주식 정보를 파이썬으로 크롤링해 보자

네이버 주식에서 삼성전자 주가 정보를 크롤링 해보려 한다. 23년 8월 4일 금요일 종가 기준, 삼성전자의 주가는 68,300원이다. 
 
삼성전자라고 검색했을 때 나오는 종합 정보 가격 그러니까 전일/시가/고가/저가/거래량을 한번에 볼 수 있는 곳 말고, 아래 시세 정보를 통해 봐야 크롤링하기 더 편하다. 그 이유로는 아래 종합 정보 가격에서는 삼성전자 주가 정보 68,300원이 em 태그 아래 각각의 span 태그에 들어가 있는데 우리가 원하는 가격 68,300원이 아니라 6,8,3,0,0이 떨어져있다. 크롤링을 할수는 있겠지만 크롤링 하고 합치고 하는 과정이 번거롭기도 하고, 굳이 이렇게 번거롭게 크롤링 하지 않아도 된다. 그 이유는 시세 정보에서 크롤링을 쉽게할 수 있기 때문이다.
 

 
시세 정보 링크는 아래와 같다.

 

네이버 증권

국내 해외 증시 지수, 시장지표, 뉴스, 증권사 리서치 등 제공

finance.naver.com

네이버 증권 시세 정보를 들어가서 현재가 정보를 클릭하며 보면 반갑게 68,300원 가격 정보가 온전히 들어가 있는 것을 볼 수 있다. strong 태그 아래 class 정보는 tah p11 . 자 이제 크롤링을 위한 준비는 다 마쳤다. 삼성전자 주가 정보를 이제 크롤링 해 보자.
 

 
<파이썬 코드>

import requests
from bs4 import BeautifulSoup

url = requests.get('https://finance.naver.com/item/sise.naver?code=005930')
html = BeautifulSoup(url.text)
price = html.find('strong', class_='tah p11').text
print(price)
68,300

삼성전자 종목 하나만 크롤링 하는건 매우 간단하다. 필요한 라이브러리를 불러오고 URL을 읽어 낸 다음, 프라이스 정보에 tag 정보와 class정보만 올바르게 입력하면 된다. 주소 링크에서 code = 005930라고 써져 있는데 이는 삼성전자의 코드 정목을 뜻 한다. 만약 삼성전자 한개가 아니라 LG전자의 주가 정보도 함께 크롤링 하고 싶으면 이 코드 정보를 수정 하면 된다. 
 

2. 삼성전자를 포함한 다른 회사의 주식 정보도 함께 크롤링 해 보자

 
 아래는 크롤링 코드이다.

import requests
from bs4 import BeautifulSoup

codes = ['005930','066570']

for i in codes:
    url = requests.get(f'https://finance.naver.com/item/sise.naver?code={i}')
    html = BeautifulSoup(url.text)
    price = html.find('strong', class_='tah p11').text
    print(price)

몇가지 주의 사항으로는 기존 URL 주소에서 코드 넘버를 입력한 부분에 i를 입력해주고, https:// 앞 format의 f를 입력해주면 된다. 그리고 이 전체 코드를 for문에 적용해주면 쉽게 삼성전자와 LG전자의 주가 정보를 크롤링 할 수 있게 된다. 결과값은 아래와 같다.

68,300
103,600

 

참고로 f-string은 파이썬 3.6 이상 버전에서 도입된 문자열 포맷팅 방식 중 하나로, 문자열 안에서 변수나 표현식을 간단하게 포맷팅할 수 있는 방법이다. f-string은 문자열 앞에 f 또는 F를 붙여서 사용하며, 중괄호 {} 안에 변수나 표현식을 넣어서 사용한다. 아래는 f-string의 기본적인 사용법과 예시이다:

 

name = "Alice"
age = 30

# 변수를 f-string으로 포맷팅
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string)

# 수식과 표현식을 f-string으로 포맷팅
x = 10
y = 20
result = f"The sum of {x} and {y} is {x + y}."
print(result)

f-string 내부의 중괄호 {} 안에 변수 이름이나 표현식을 넣으면 해당 부분이 실제 값으로 치환된다. 이렇게 하면 변수나 수식을 문자열에 쉽게 삽입할 수 있다.

 

크롤링 하고 나서 보니, 크롤링은 하였지만 결과에 대해서는 조금 하찮아보이기도 한다. 이 정보 자체로는 아무것도 할 수 없을테니. 다만 이런 기초 학습을 통해 네이버 주식 정보에서 대한민국에 상장된 모든 코스피 시세 정보도 크롤링 할 수 있으니, 조금씩 조금씩 공부하면서 실력이 늘도록 도움이 되었으면 한다. 나에게도 , 그리고 이 블로그 글을 읽을 누군가를 위해서도 조금씩 성장하는 즐거움을 주기 위해 크롤링 한 내용들을 기록으로 남기려 한다.

 

파이썬 공부를 하면서 느낀건데 매일 매일 하면 조금씩 는다. 그것도 아주 조금씩. 그런데 조금이라도 안 하면 금방 까먹는다. 하루에 한 보 전진하다가, 갑자기 2보 후퇴 하는 느낌이 든다. 파이썬 공부를 하면서 조금씩 성장하는 과정은 물론이고, 그 과정에서 느껴지는 즐거움은 큰 의미를 가진다. 작은 목표를 달성하거나 새로운 기술을 습득하는 등의 성장은 자기 성취감을 준다. 이러한 감정은 자신에게 긍정적인 자아 이미지를 형성하고 자신감을 높여줄 뿐만 아니라 작은 단계로 성장하면서 지속적인 동기 부여를 유지할 수 있다. 큰 목표를 이루기까지의 길은 멀고 힘들 수 있지만, 작은 성취들은 그 과정을 재미있고 가치있게 만들어준다. 성장하는 과정에서 새로운 경험과 지식을 얻게 된다. 새로운 것을 배우고 시도함으로써 세상을 더 풍부하게 느낄 수 있다.그리고  작은 도전과 과제들을 해결하면서 문제 해결 능력이 향상된다. 결국 엉덩이 무겁게 버티는 사람이 성장하는 느낌인데 이 능력은 삶의 다양한 상황에서 도움이 되며, 어려운 문제에 더 자신감 있게 접근할 수 있게 해준다. 결국 이러한 작은 성장들이 쌓이면서 지속적인 발전을 경험하게 된다. 이는 더 나은 방향으로 성장하기 위한 계획을 세우는 데 도움을 줄 수 있다.

 

작은 성장들은 큰 변화를 만들어낼 수 있는 첫 단계입니다. 제게 하는 말이기도 하지만 이 블로그를 읽는 모든 분들이 이러한 성장의 순간들을 즐기며 더 나은 미래를 향해 나아갈 수 있기를 바랍니다.

반응형
Posted by 마르띤
,