본문 바로가기

코딩 - 주피터 노트북 (파이썬)

[핀테크 코딩] 6주차

 BeautifulSoup: 웹크롤링 할 떄 이용되는 파이썬의 라이브러리. 웹에서 표현되는 정보를 특정 목적을 위해 프로그램을 작성해, 정규화 된 정보로 긁어오는 행위

HTML이나 XML로 작성된 파일을 가져오고 (Pull), 내용을 찾고(nevigate)함

HTML request -> response -> parsing

HTML 문서를 회신받아 문서를 태그 기반으로 파싱하여, 크롤링을 수행

 

Ex) BeautifulSoup의 실습(1)

KOSPI200의 지수 수집

Naver에서 KOSPI200 Index를 수집해보자.

 

프레임 소스 보기(V)

https://finance.naver.com/sise/sise_index_time.nhn?code=KPI200&thistime=20190604134000

 

네이버 금융

 

finance.naver.com

프레임 소스 보기 -> view source를 삭제하고, 주소만 긁어옴

주소창의 마지막 숫자는 페이지 수

https://finance.naver.com/sise/sise_index_day.nhn?code=(종목명)&page=1(페이지번호)

Object 할당 (개체 지정)을 해보자

naver_index = 'https://finance.naver.com/sise/sise_index_day.nhn?code=' + kindex + '&page=' + str(page_n)

bs4.BeautifulSoup를 해주니 멋지게 나옴.

검사를 눌러보면 
날짜 계열은 td에 갖혀있다 -> tr에 시작해서 tr로 끝나면 tr구문, 여기는 td구문
날짜와 종가

날짜는 date, 종가는 number_1 어드레싱으로 잡혀 있음

우리가 보고자 하는 데이터가 54개나 있음... 우리가 원하는 걸 찾아보자

Data를 대량으로 제공하는 사이트에서 원하는 데이터의 위치를 찾을 떄는 XPath 주소를 이용하면 편리.

웹사이트 또는 XML문서에 있는 각 항목의 주소를 문서에 포함된 태그를 조합한 경로 형태로 표현하는 언어.

;

소스코드가 나와 있는 곳에서 음영으로 선택된 부분에 마우스 -> 우클릭 -> 복사 -> Copy XPath

 

XPath 주소 따기
네이버는 1부터 숫자가 시작되는데, 파이썬은 0부터 시작 -> -1씩 해줘야한다

/html/body/div[1]/table[1]/tbody/tr[3]/td[1]

체결가(종가)의 XPath

 

source.find_all('table')[0].find_all('tr')[3].find_all('td')[0]

텍스트화된 결과물
import date를 통해, 원하는 형식으로 바꿔줌

this_date는 연도,월 일의 형식으로 바꿔줌

날짜 표시 형식이 -, ., / 같은 것들을 미리 변환시켜 주자

/html/body/div/table[1]/tbody/tr[3]/td[2] 

위의 tr[3]을 -1 해줬음
한 페이지에 6개 날짜, number_1이 붙은게 

'코딩 - 주피터 노트북 (파이썬)' 카테고리의 다른 글

[핀테크 코딩] 5주차  (0) 2019.05.28
[핀테크 코딩] 4주차  (0) 2019.05.23
[핀테크 코딩] 3주차  (0) 2019.05.14
[핀테크 코딩] 2주차  (0) 2019.05.07
[핀테크 코딩] 1주차  (0) 2019.04.30