일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 윈도우10
- 안드로이드
- 오피스
- git
- python
- html
- python3
- win32com
- 문자열
- 파이썬3
- pythongui
- pyqt5
- 아웃룩
- 깃
- windows
- 엑셀
- Android
- matlab
- Windows11
- VBA
- office
- Excel
- 파워포인트
- Windows10
- 비주얼베이직
- Outlook
- 윈도우11
- pandas
- 파이썬
- 파이썬GUI
Appia의 IT세상
[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기 본문
[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기
이전 포스팅에서는 네이버 주식에서 시갈총액의 첫번째 화면에 있는 항목과 가격에 대해서 출력을 하는 방법에 대해서 포스팅을 해봤습니다. 갑자기 이번에는 전체 항목에 대해서 출력을 해볼까라는 생각을 하게되었습니다. 일단, 약간의 규칙성을 찾기 위해서 화면 하단에 있는 부분을 번호로 되어 있는 부분들을 마우스를 올려놓아봤습니다.
[1] 부분의 마우스를 올려놓았을 때 화면 좌측에 다음과 같은 링크가 나타났습니다.
https://finance.naver.com/sise/sise_market_sum.naver?&page=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)
이번 포스팅은 [파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기라는 주제로 간단히 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.
'Python > Python Crawler[크롤러]' 카테고리의 다른 글
[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가) (0) | 2021.09.30 |
---|---|
[파이썬 크롤링]네이버 주식 시가 총액 코스닥전체 항목 출력하기 (1) | 2021.09.27 |
[파이썬 크롤링]네이버 주식 시가 총액 코스피 50위까지 순위 항목 가격 출력하기(bs4, requests) (0) | 2021.09.24 |
[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목과 링크주소출력하기 (bs4, requests) (0) | 2021.08.19 |
[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목 출력하기 (bs4, requests) (0) | 2021.08.18 |