본문 바로가기
멋쟁이사자처럼 AI School 8기(fin)/WIL(Week I Learn

[멋쟁이사자처럼 AI스쿨 8기] Day13. week4 - WIL

by #FF0000 2023. 1. 12.

 

 

AI스쿨 4주차 WIL(23.1.9 ~ 1.11)

 

박조은 강사님(오늘코드)과 함께하는 본격적인 python 강의 시작.

 

 

학습내용 Review

 

 

데이터 수집을 위한 판다스 기초. pandas란?

  • 데이터 조작 및 분석을 위한 소프트웨어 라이브러리
  • 숫자 테이블과 시계열 을 조작하기 위한 데이터 구조 와 연산을 제공

https://pandas.pydata.org/docs/index.html

 

추상화된 도구를 통한 데이터 수집

  • FinanceDataReader을 통한 KRX 상장 종목 정보 수집

https://github.com/financedata-org/FinanceDataReader

Web Scraping하기 전에 꼭 알아둘것

  • 웹 스크래핑은 브라우저 상에 표기되어야 하는 모든 내용을 빠르게 요청하기 때문에 서버에 부담이 생길 수 있습니다.
  • 서비스 제공자가 요청하는 방식인 API를 통하지 않은 데이터 수집은 데이터베이스권에 대한 침해행위일 수 있습니다.
  • 웹 스크래핑을 할 때 한번에 많은 페이지를 요청 -> DDOS 공격으로 의심 받을 가능성 존재.
  • -> time.sleep() 을 이용해 시간 간격을 두고 스크래핑 실시.

https://blog.naver.com/kcc_press/222839471790

 

robots.txt

  • 서비스 제공자가 페이지 스크래핑 가능 여부를 구체적으로 명시하는 텍스트 정보

http://www.robotstxt.org/robotstxt.html

 

 

데이터 수집을 위한 HTTP 통신과 HTML, CSS의 이해

  • HTTP 메소드와 HTML tag를 파악 후 알맞은 방법으로 크롤링 수행

https://ko.wikipedia.org/wiki/HTTP
https://finance.naver.com/item/board.naver?code=207940&page=12472

 

requests 를 통한 HTTP 요청 이해하기

  • 작은 브라우저로 웹사이트를 읽어오는 목적

https://requests.readthedocs.io/en/latest/#

 

 

beautifulsoup 을 통한 원하는 정보 찾기

  • 읽어온 웹 사이트의 HTML 문서를 해석

https://www.crummy.com/software/BeautifulSoup/

 

 

브라우저의 네트워크 탭 이해

  • GET : 필요한 데이터를 Query String 에 담아 전송

https://finance.naver.com/item/board.naver?code=207940&page=12472

  • POST : 전송할 데이터를 HTTP 메시지의 Body의 Form Data에 담아 전송

 

 

 

주간 Key word

 

  • html 파일 읽어오기
    • pd.read_html(url, encoding="cp949")
  • 결측 데이터 제거하기(axis 0:행, 1:열)
    • table[0].dropna()
  • 데이터 프레임 합치기
    • pd.concat([df1, df2, df3])
  • 중복데이터 제거
    • df.drop_duplicates()
  • 과학적 기수법
    • 1.210000e+02 => 121
  • 날짜 column의 첫 row값 확인
    • date = df.iloc[0]["날짜"]
  • 파일로 저장하기
    • df.to_csv(file_name, index=False)
  • 파일 읽어오기
    • pd.read_csv(file_name)