네이버 금융 개별종목 수집하기 PandasRequestsBeautifulSoup

네이버 금융 개별종목 수집하기 PandasRequestsBeautifulSoup

Join 메소드 p. 534 ackage threadEximport java.awt.Toolkitimport java.util.ArrayListpublic class Thread03 extends Thread int seqpublic Thread03int seq this.seq seqOverridepublic void run 오버라이드 해서 적어줍니다. System.out.printlnthis.seq 차례 스래드 시작try Thread.sleep1000 catch InterruptedException e e.printStackTraceSystem.out.printlnthis.seq 차례 스래드 끝동기화 join 스래드가 모두 종료된 후에 main 을 종료하겠습니다.


판다스 코드로 데이터 수집하기
판다스 코드로 데이터 수집하기

판다스 코드로 데이터 수집하기

pd.readhtml 네이버 일별 시세는 cp949 인코딩으로 불러 올 있습니다. 기본 인코딩 설정은 utf8 table pd.readhtmlresponse.text 출력해보시면 NaN 결측치 값과, 맨 밑의 페이징 부분도 같이 출력되어서 제거가 필요합니다. 페이징 책상 제거 table0와 table1을 확인해보시면 tabel0에 필요한 데이터가 있습니다. temp table0 table1 은 페이징 책상 .dropna table0 했을 때 나오는 NaN을 dropna를 통해 결측치가 들어있는 row를 제거합니다.

라이브러리 로드
라이브러리 로드

라이브러리 로드

import pandas as pdimport numpy as npimport requests

itemcode itemname pageno 1url f21. pd.readhtmlurl테이블을 찾을 수 없습니다.고 오류가 난다. readhtml은 책상 태그가 있어야 불러올 있습니다. url 들어가서 inspect 해보시면 책상 태그가 있는데도 불러올 수 없습니다..

tqdm, trange

프로세스 진행 상태를 보여주는 시스템 range는 파이썬 표준 라이브러리에서 제공하는 기능, tqdm에서 제공하는 trange. 원래는 별도 설치해야 하지만 코랩에서는 설치되어 있어서 import 하면 됩니다. tqdm 공식 문서 import time 하나의 데이터프레임으로 만들기 데이터는 newslist라는 변수에 들어있음 dfnews pd.concatnewslistdfnews.shape 0203번 실습파일 06번 이론파일네이버 금융 국내증시 에서 url을 가져옵니다.

inspectnetwork css는 스타일, doc 등 클릭해보면서 요구하는 데이터를 찾을 있습니다.

일자별 시세를 페이지별로 수집하는 함수 만들기

뉴스 기사 수집과 일별 시세 수집에서의 차이? 책상 접근 권한 때문에 useragent를 썼다. def getdaylistitemcode, pageno url을 만든다. url f requests를 통해 html 파일을 받아옵니다. response request.geturl, headers useragent Mozilla5.0 readhtml을 통해 table 태그를 읽어옵니다.

데이터 프레임을 CSV 모양 파일로 저장하기

date dfday.iloc0날짜filename fitemnameitemcodedate.csvdfday.tocsvfilename, index Falseprintdone

df.tocsv csv파일로 저장합니다.

index 옵션을 False로 두어 DF의 기본 index가 저장되지 않도록 합니다.

파일명은 종목명종목코드API호출날짜.csv 로 저장합니다.

BeautifulSoup

HTML 정보를 파싱해서 요구하는 정보를 찾아옵니다. BeautifulSouphtmldoc해주면 구조화되어 있지 않던 response 출력 결과 파일을 보기 좋게 정렬해줍니다. 함수 생성에 beautifulsoup을 사용 안하는 이유는? pd.readhtml에 책상 태그 기능이 내장되어 있기 때문 from bs4 import BeautifulSoup as bs bsresponse.text를 html에 넣어서 불러서 사용하자. html bsresponse.text 공식 사이트의 매서드를 보자 html.title .table pd.DataFramehtml.table html.a 링크 태그 하나만 가져옵니다.

자주 묻는 질문

판다스 코드로 데이터

pd 더 알고싶으시면 본문을 클릭해주세요.

라이브러리 로드

import pandas as pdimport numpy as npimport requestsitemcode itemname pageno 1url f21. 좀 더 자세한 사항은 본문을 참고해 주세요.

tqdm trange

프로세스 진행 상태를 보여주는 시스템 range는 파이썬 표준 라이브러리에서 제공하는 기능, tqdm에서 제공하는 trange. 궁금한 내용은 본문을 참고하시기 바랍니다.