2021.07.07 - [Python/여러가지] - [Python] 파이썬 크롤링 - BeautifulSoup을 이용한 크롤링
이전에 네이버 뉴스 홈페이지를 크롤링하여 웹에 출력했었는데
이번에는 네이버 금융 페이지에서 일부 종목들을 크롤링하여 웹에 간단하게 출력해보려 한다.
1. 네이버 인기 검색종목 크롤링
네이버 금융 홈페이지를 보면 여러 정보들을 한눈에 볼 수 있도록 만들어져 있다.
여기서는 인기 검색 종목 부분을 크롤링 해보도록 하겠다.
역시 F12를 눌러 구조를 살펴보면 aside라고 감싸진 부분 속에 tbody 태그 내부에 위치한 모습을 확인할 수 있다.
마찬가지로 해당 크롤링 할 부분에 오른쪽 마우스를 눌러 selector를 복사해준다.
소스코드
#django의 경우에는 views.py 부분에 함수를 정의해주면 된다. 이전 포스트 참조
from bs4 import BeautifulSoup
import requests
import json
# naver finance 인기 검색 종목
urls = 'https://finance.naver.com/'
headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"}
res = requests.get(urls,headers=headers)
soups = BeautifulSoup(res.text,'html.parser')
top = soups.select("#container > div.aside > div.group_aside > div.aside_area.aside_popular > table > tbody > tr > th")
toplist = list()
top2 = list()
for tops in top:
toplist.append(tops.text.strip())
for i in range(len(toplist)):
comp = top[i].text.strip()
item_objs={
'comp':comp,
}
top2.append(item_objs)
comps = top2
받아온 데이터를 리스트에 넣어둔 다음, 이를 호출할 때에는 다시 리스트에서 호출할 수 있도록 만들었다.
print문으로 표시해보면
역시 잘 표시되는것을 확인할 수 있다.
이를 다시 django에서 출력해보면
우측에 잘 표시되는것을 확인할 수 있다.
<!-- html 코드. django에서 동작 -->
<div class="p-4 mb-3 bg-light rounded">
<h4 class="font-bold"><b>주요 거래 top5</b></h4>
<!-- django 템플릿 태그. 위에서 받은 comps정보를 index에 삽입 -->
{%for index in comps %}
<td>
<p style="font-size:15px;"><b>{{index.comp}}</b></p>
</td>
{%endfor%}
</div>
다음 포스팅은 좀 더 많은, 다른 정보를 크롤링 해보도록 하겠다.
반응형
'Python > Django(장고)' 카테고리의 다른 글
Django 관련 유용한 블로그, 팁 (0) | 2021.07.26 |
---|---|
[Python/Django] 파이썬 주식 정보(뉴스) 페이지 만들기 - 5. 네이버 금융 크롤링 2 (3) | 2021.07.15 |
[Python/Django] 파이썬 주식 정보(뉴스) 페이지 만들기 - 3. 부트스트랩 (0) | 2021.07.12 |
[Python/Django] 파이썬 주식 정보(뉴스) 페이지 만들기 - 2. 네이버 API를 이용하여 검색정보 받아오기 (0) | 2021.07.08 |
[Python/Django] 파이썬 주식 정보(뉴스) 페이지 만들기 - 1. 구조 만들기 (2) | 2021.07.06 |