개발

파이썬 주식 데이터 수집 (구글 파이낸스)

동고킴 2021. 10. 13. 01:00
반응형

야후 파이낸스에서 주식 데이터 수집에 이어 이번엔 구글 파이낸스에서 주식 데이터를 수집해봅시다.

 

아래는 삼성전자 구글 파이낸스 URL인데, 주소를 보면 뒤가 "[티커]:KRX (코덱스는 KOSDAQ)" 형식으로 붙는 걸 알 수 있습니다. 여기에 티커만 바꿔주면서 종목을 조회할 겁니다.

https://www.google.com/finance/quote/005930:KRX

 

삼성전자(005930) 주가 및 뉴스 - Google Finance

최근 삼성전자(005930)의 실시간 시세, 이전 실적, 차트를 비롯한 금융 정보를 확인하여 충분한 정보를 바탕으로 주식 거래와 투자를 결정하세요.

www.google.com

 

위 주소에서 주가와 날짜를 파싱해야합니다.

위에 찍힌 가격이 데이터를 수집하는 날로 가정하고 해도 되지만, 주말이나 휴장일에 수집할 수도 있기 때문에 화면에 나온 날짜 기준으로 파싱 하는 게 좋습니다.

 

datetime 라이브러리를 사용하여 날짜를 파싱 하였습니다.

# 날짜
content_date = soup.find("div", {"class": "ygUjEc"})
content_date = content_date.text.split(",")[0]

google_day = content_date.split(" ")[0]
google_month = content_date.split(" ")[1]
for month in ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]:
	if google_month.find(month) > -1:
		google_month = month
        break

date = datetime.datetime.strptime(f"{google_day} {google_month} {datetime.datetime.now().year}", "%d %b %Y").strftime("%Y-%m-%d")
                                      

# 주가
content_close = soup.find("div", {"class": "YMlKec fxKbKc"})
close = re.sub(r'[^0-9.]', '', content_close.text)

 

헤더는 user-agent 랜덤 생성 라이브러리 써도 되지만, 귀찮아서 그냥 복붙...

def __get_headers():
    return {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "en-GB,en;q=0.9,en-US;q=0.8,ml;q=0.7",
        "cache-control": "max-age=0",
        "dnt": "1",
        "sec-fetch-dest": "document",
        "sec-fetch-mode": "navigate",
        "sec-fetch-site": "none",
        "sec-fetch-user": "?1",
        "upgrade-insecure-requests": "1",
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36"}

 

삼성전자 데이터 수집 결과입니다.

삼성전자 {'date': '2021-10-12', 'close': 69000.0}

 

아래는 전체 코드입니다.

 

반응형