본문 바로가기
파이썬 배우기

파이썬으로 웹크롤링 해 보기!!! 4편 (ft. 네이버 증권 정보 가져오기)

by 북노마드 2022. 5. 24.
728x90
반응형

저번 시간에는 웹페이지에서 헤드라인 기사을 가져와서 텍스트만 나오게 하는 방법을 배워봤습니다.

 

복습 한 번 하고 진도 나가볼까요?^^

 

파이썬으로 웹크롤링 해 보기!!! 3편

자, 이번 시간에는 파이썬에서 지난 시간에 배운 것에 이어서, 다움 브런치 기사의 제목만 가져오는 걸 해 보겠습니다. 파이썬으로 웹크롤링 해 보기!!! 2편 (ft. 다움 브런치 기사 가져오기) 자,

booknomad.tistory.com

네이버 증권 사이트로 가보겠습니다. 그냥 맨 위에 있는 "부산주공"을 클릭해 봤습니다.  (종목 추천 아닙니다^^;;)

자, 그런데 진도를 더 나가기 전에 하나 짚어보겠습니다.

import requests
from bs4 import BeautifulSoup
response = requests.get("https://search.daum.net/search?w=brunch&nil_search=btn&DA=NTB&enc=utf8&q=%ED%85%8C%EC%8A%AC%EB%9D%BC")
html = response.text
soup = BeautifulSoup(html, 'html.parser')
title = soup.select('.link_brunch')
for i in title:
  print(i.text)
 

여기서  requests, get, text, BeautifulSoup, select, for 같은 경우에는 변수가 아니라 명령어입니다. 그러니까 이런 것은 연산자와 같은 겁니다. 더하기, 빼기, 나누기, 곱셈 같은 연산자. 이런 기호를 잘못 쓰면 당연히 계산이 안 되겠죠?

 

그런데 나머지들, 그러니까 response, html, soup, title 같은 것들은 다 변수입니다. 변수라고 하면 한글로 써도 말이 된다고 했죠? 그래서 제가 다 순서대로  철수, 길동, 영희, 순이 로 바꿔보겠습니다. 그래도 제대로 결과값이 나오는지 보시겠습니까?

명령어 갖다 붙여 봅니다.

 

import requests

from bs4 import BeautifulSoup

철수 = requests.get("https://search.daum.net/search?w=brunch&nil_search=btn&DA=NTB&enc=utf8&q=%ED%85%8C%EC%8A%AC%EB%9D%BC")
길동 = 철수.text

영희 = BeautifulSoup(길동, 'html.parser')
순이 = 영희.select('.link_brunch')

for 머스크 in 순이:
  print(머스크.text.strip())

 

기똥차게 같은 결과 값이 나옵니다. 

 

변수들을 우리말로 바꿔보니, 웹크롤링의 핵심이 뭔지, 즉 절대 틀려서는 안 되는 명령어가 뭔지 한 눈에 보이지 않나요?

 

근데, 이건 조심해야 합니다.

다 똑같은 것 같은데 오류가 떴죠? 뭐가 오류가 떴을까요?
 
import requests
from bs4 import BeautifulSoup
철수 = requests.get("https://search.daum.net/search?w=brunch&nil_search=btn&DA=NTB&enc=utf8&q=%ED%85%8C%EC%8A%AC%EB%9D%BC")
길동 = 철수.text
영희 = BeautifulSoup(길동, '길동.parser')
순이 = 영희.select('.link_brunch')
for 머스크 in 순이:
  print(머스크.text.strip())

 

제가 

 

영희 = BeautifulSoup(길동, 'html.parser')

 

여기를

 

영희 = BeautifulSoup(길동, '길동.parser')

 

이렇게 고쳤습니다. 즉, html.parser 부분은 변수가 아니라 명령어입니다. 일단 외웁시다. 너무 따지고 들어도 진도가 더딥니다!


무튼 다시 부산주공으로 가보겠습니다. 사이트 주소입니다.

 

네이버 금융

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

finance.naver.com

파이썬 창에 이렇게 입력합니다.

import requests
from bs4 import BeautifulSoup


html = response.text
soup = BeautifulSoup(html, 'html.parser')
price = soup.select_one("#_nowVal")

print(price)

그런데 신기하네요. 결과값이 오류는 없고 (명령어에 문제가 없다는 뜻입니다), None이 나옵니다.

 

이상하네요. 다음 시간에 다움 증권에 접속해서 한번 더 시도를 해보겠습니다.

 

명령어에는 오류가 없으니 다들 한번 연습해 보시기 바라겠습니다.

728x90
반응형

댓글