나의 발자취

금융데이터 크롤링 부분 중 (FR 겨울방학 심화스터디 2주차용) 본문

금융공학/프로젝트

금융데이터 크롤링 부분 중 (FR 겨울방학 심화스터디 2주차용)

달모드 2021. 1. 10. 19:06

## 4.4 뷰티풀 수프로 일별 시세 읽어오기
뷰티풀 수프 : html, xml 페이지로부터 데이터를 추출하는 파이썬 라이브러리로, 웹 스크레이퍼.

일단, 값을 못읽어준다. 헤더 설정해야함.

# 값을 못읽어와서 문제를 해결해줌.
url = "https://finance.naver.com/item/sise_day.nhn?code=068270&page=1"
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36'}
res = requests.get(url, verify=False, headers=headers)

req.content.decode('utf-8','replace') 

 

네이버금융 셀트리온에 들어가서 소스 코드에서 링크 주소 검색하는 방법.

사파리에서 접속하여 url 링크 가져와서 , opt+cmd+ U 누르면 아래와 같이 소스코드를 볼 수 있다.

'맨뒤'라는 키워드를 찾으면 이 글자에 링크된 페이지가 몇 페이지인지 확인가능.(383 페이지)

이기 때문에

from bs4 import Beautifulsoup
from urllib.request import urlopen

url = "https://finance.naver.com/item/sise_day.nhn?code=068270&page=1"
with urlopen(url) as doc:
    html = Beautifulsoup(doc, 'lxml') # 파싱방법 : lxml
    pgrr = html.find('td', class_='pgRR') # pgRR = pageRightRight
    print(pgrr.a['href'])

'맨뒤'를 가진 마지막 페이지를 나타내는 링크는 <a> 태그 안 href 태그를 가진 곳 안에 있고, 그 전에 td 태그에서 class의 속성이 'pgRR'인 것을 찾아야하기 때문에.

 

와우...^^ 다 갖고오긴 했는데 한글이 깨진다.

read_html()에 인코딩 속성을 설정해주었더니 잘 돌아간다 ^^ 

Comments