Appia의 IT세상

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기 본문

Python/Python Crawler[크롤러]

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

Appia 2021. 9. 26. 15:43
반응형

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

이전 포스팅에서는 네이버 주식에서 시갈총액의 첫번째 화면에 있는 항목과 가격에 대해서 출력을 하는 방법에 대해서 포스팅을 해봤습니다. 갑자기 이번에는 전체 항목에 대해서 출력을 해볼까라는 생각을 하게되었습니다. 일단, 약간의 규칙성을 찾기 위해서 화면 하단에 있는 부분을 번호로 되어 있는 부분들을 마우스를 올려놓아봤습니다. 

[1] 부분의 마우스를 올려놓았을 때 화면 좌측에 다음과 같은 링크가 나타났습니다. 

https://finance.naver.com/sise/sise_market_sum.naver?&page=1

 

네이버 금융 시가총액 1페이지 화면위에 마우스 올려놓았을 때

그리고 나서, [맨뒤] 부분에 마우스를 올려놓았을 때는 다음과 같은 링크가 나타나는 것을 확인할 수 있었습니다. 

https://finance.naver.com/sise/sise_market_sum.naver?&page=34

네이버 금융 시가총액 맨뒤 화면위에 마우스 올려놓았을 때

이 부분을 바탕으로 for문을 사용하면 되겠다는 생각을 하였습니다. 그럼 일단, 이전에 사용했던 코드를 약간 수정이 불가피할 것으로 보입니다. 먼저 이전에 사용했던 코드를 보면 다음과 같습니다. 

import requests
from bs4 import BeautifulSoup
res = requests.get('https://finance.naver.com/sise/sise_market_sum.naver')
soup = BeautifulSoup(res.content,'html.parser')

section = soup.find('tbody')
items= section.find_all('tr', onmouseover="mouseOver(this)")
for item in items :
    basic_info = item.get_text()
    sinfo = basic_info.split("\n")
    print("\t" + sinfo[1] +"\t\t"+sinfo[2]+"\t\t\t"+sinfo[3])

여기에서 requests.get를 이용하여 불러올 부분에 대해서 약간의 변경이 불가피합니다. 그래서 위에서 보이는 부분들에 대해서 함수 처리를 하고, 주소 부분에 대해서만 반복적으로 사용할 수 있게 변경을 해보도록 하겠습니다. 

 

import requests
from bs4 import BeautifulSoup

def return_value(address):
    res = requests.get(address)
    soup = BeautifulSoup(res.content, 'html.parser')

    section = soup.find('tbody')
    items = section.find_all('tr', onmouseover="mouseOver(this)")
    for item in items:
        basic_info = item.get_text()
        sinfo = basic_info.split("\n")
        print("\t" + sinfo[1] + "\t\t" + sinfo[2] + "\t\t\t" + sinfo[3])


baseaddress = 'https://finance.naver.com/sise/sise_market_sum.naver?&page='
for i in range(1,35):
    return_value(baseaddress+str(i))

위와 같이 변경을 하였습니다. 위에서 보이는 기본 주소는 페이지에 상관없이 동일한 부분을 넣어두고, 실제 페이지 변경될 때마다 변경되는 부분에 대해서 반영될 수 있게 하여 이 부분을 함수의 인자로 주어서 동일한 효과를 얻을 수 있게 작업을 하였습니다. 위의 코드를 실행화면 다음과 같은 화면이 나타나는 것을 알 수 있습니다. 

	1		삼성전자			77,300
	2		SK하이닉스			104,000
	3		NAVER			405,500
	4		삼성바이오로직스			922,000
	5		삼성전자우			71,700
	6		LG화학			761,000

...<중간 생략>
	1650		KBSTAR 200금융			8,970
	1651		KBSTAR 200철강소재			9,490
	1652		ARIRANG 코스닥150			15,140
	1653		KBSTAR 모멘텀밸류			14,825
	1654		KBSTAR 국채선물10년			55,140
	1655		KBSTAR 팔라듐선물인버스(H)			5,685
	1656		KBSTAR 200생활소비재			8,280
	1657		KINDEX 배당성장			41,365
	1658		KBSTAR 200산업재			12,870

이와 같은 방법으로 시가총액 기반으로전체 항목과 가격등을 출력할 수 있습니다. 

[파이썬 크롤링]네이버 주식 시가 총액 코스피 50위까지 순위 항목 가격 출력하기(bs4, requests)

 

[파이썬 크롤링]네이버 주식 시가 총액 코스피 50위까지 순위 항목 가격 출력하기(bs4, requests)

[파이썬 크롤링]네이버 주식 시가 총액 코스피 50위까지 순위 항목 가격 출력하기(bs4, requests)  크롤링을 하는 이유는 가장 쉽게 인터넷에 있는 취합하는 것이라고 생각합니다. 그 정보를

appia.tistory.com

이번 포스팅은 [파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기라는 주제로 간단히 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments