관리 메뉴

bright jazz music

6. 파이썬 실습 본문

기타/파이썬 금융 데이터 분석

6. 파이썬 실습

bright jazz music 2021. 12. 25. 00:36

파이선의 문법의 구성요소

 

함수(def) ==> 클래스(class) ==> 모듈(module) ==> 라이브러리(library)

 

모듈은 파이썬 프로그램 단위로 생성된다. 즉, file.py라는 파일이 file이라는 모듈이 된다. 이 모듈 안에는 여러 개의 클래스가 존재할 수 있고, 클래스 안에는 여러 개의 함수가 존재할 수 있다. 

 

외부 모듈을 가져올 때는 "import 모듈명"을 추가한다. 모듈이 어려 개 있는 라이브러리에서 특정 모듈만을 호출(임포트) 할 때는 "import 라이브러리명.모듈명"을 사용한다. 모듈에 있는 특정 함수만을 호출할 때는 from 모듈명 import 함수명"을 사용한다. 이는 불필요한 임포트를 최소화 하기 위함이다. 또한 긴 모듈을 줄이기 위해 as를 사용하기도 한다.

 

import bs4 # bs4라는 외부 모듈을 가져온다.

# urllib이라는 라이브러리 내의 request 모듈에 있는 urlopen 함수를 가져온다.
from urllib.request import urlopen

import pandas as pd # pandas라는 모듈을 pd라는 이름으로 가져온다

 

뷰티플 수프 사용하기.

 

뷰티플 수프란?

Beutiful Soup는 인터넷 상에서 데이터를 수집할 때 유용하게 사용되는 파이썬 패키지.

HTML이나 XML로 작성된 파일을

 

  • pull (가져오기)
  • navigate and search (내용 찾기)
  • parse (분석하기)

 

 

실습 순서.

  1. 주피터 노트북 실행
  2. finEng 폴더 접근
  3. 06. BeautifulSoup.py 파일 생성 (ipynb 형식으로 만들어야 한다. 주피터 노트북으로 실습할 거면. BeutifulSoup.ipynb)
  4. 코드 입력 후 실행

 

 

 

데이터를 수집하려면 HTML 문법을 이해해야 수월.

 

실습 중간에 주피터 노트북을 껐다가 다시 진행한다면 주피터 노트북 상단 메뉴의 kernel > Restart & Run All 버튼을 눌러 전체 실행해서 앞부분 결괏값을 메모리에 저장한 후 진행해야 함.

 

 

#!/usr/bin/env python
# coding: utf-8

# In[ ]:


#http://book.finterstellar.com/sample.html

import bs4     # bs4라는 외부 모듈을 가져온다

# urllib라는 라이브러리 내의 request 모듈에 있는 urlopen 함수를 가져온다     
from urllib.request import urlopen     

import pandas as pd     # pandas라는 모듈을 pd라는 이름으로 가져온다


# In[2]:


html_doc = """
<html><head><title>The Office</title></head>
<body>
<p class="title"><b>The Office</b></p>
<p class="story">In my office, there are four officers,
<a href="http://example.com/YW" class="member">YW</a>,
<a href="http://example.com/JK" class="member">JK</a>,
<a href="http://example.com/YJ" class="member">YJ</a> and
<a href="http://example.com/KS" class="member">KS</a>
.</p>
<p class="story">...</p>
"""


# In[3]:


from bs4 import BeautifulSoup
#bs4 라이브러리에서 BeautifulSoup 패키지 가져오기


# In[4]:


soup = BeautifulSoup(html_doc, 'html.parser')
#뷰티플 수프 함수를 이용해 html_doc을 해석해서 soup에 저장.
#파싱 시 HTML코드를 분석해서 태그별로 서브 변수를 생성해 내용을 저장
# 따라서 사용자는 소스 내에 있는 태그 단위로 정보 컨트롤 가능


# In[10]:


print(soup.prettify())


# In[5]:


soup.title
#title태그를 통째로 가져오기


# In[6]:


soup.title.text
#태그 제거하고 text만 가져오기


# In[7]:


soup.a
# a 태그를 통째로 가져옴(첫 번째만 가져옴)


# In[8]:


soup.find_all('a')
#따라서 모두 가져오기를 사용


# In[19]:


soup.find_all('a').text
#텍스트만 가져오려고 했지만 오류남. 결과가 리스트 형태이기 때문에 바로 위의 메소드로는 값을 찾을 수 업음.


# In[9]:


soup.find_all('a')
#리스트에 담긴 값을 모두 가져오기


# In[11]:


soup.find_all('a')[2]
# 2번 인덱스( 순서로는 세 번째)에 해당하는 값을 가져옴


# In[17]:


memberList = soup.find_all('a') #memberList 변수에 멤버 목록 담기. 그리고 출력
for m in memberList:
    print(m.)


# In[ ]:

 

 

Comments