[ 작업 환경 ]

Python3.8

 

 

 

1. 필요 패키지 설치 및 import, 선언 방법

pip install beautifulsoup4
pip install lxml

from bs4 import BeautifulSoup

 

beautifulsoup4만을 설치할 경우 아래와 같이 선언하여 사용할 수 있고 추가설치가 필요없는 대신 속도가 빠르진 않고 적당한 수준입니다.

bsObject = BeautifulSoup(html, "html.parser")

 

lxml을 설치하여 아래와 같이 선언하여 사용시 속도가 매우 빠르므로 아래와 같이 사용하는 것을 권장합니다.

bsObject = BeautifulSoup(html, "lxml")

 

 

 

2. 웹크롤링 샘플 : find 활용

from urllib.request import urlopen
from bs4 import BeautifulSoup

code = '032500'

html = urlopen("https://finance.naver.com/item/main.nhn?code=" + code)
bsObject = BeautifulSoup(html, "lxml", from_encoding='utf-8')

no_today = bsObject.find('p', {"class":"no_today"})
blind = no_today.find('span', {"class":"blind"})
live_cost = blind.text

print(live_cost)

참고 자료 : html 소스 일부

<p class="no_today">
			<em class="no_up">
		<span class="blind">57,300</span>
		<span class="no5">5</span><span class="no7">7</span><span class="shim">,</span><span class="no6">6</span><span class="no0">0</span><span class="no0">0</span>
	</em>
</p>

 

 

 

3. 웹크롤링 샘플 : findAll 활용

from urllib.request import urlopen
from bs4 import BeautifulSoup

code = '032500'

html = urlopen("https://finance.naver.com/item/main.nhn?code=" + code)
bsObject = BeautifulSoup(html, "lxml", from_encoding='utf-8')


# 기업개요 - 일일 정보
print('기업 개요')
summary_info = bsObject.find('div', {"class":"summary_info"})
summary_info_list = summary_info.findAll('p')
for summary_info_line in summary_info_list:
    print(summary_info_line.text)

참고 자료 : html 소스 일부

<div id="summary_info" class="summary_info">
	<h4>기업개요</h4>
	
		<p>1991년 1월에 설립되어 1994년 법인전환 후 2000년 3월에 코스닥시장에 상장한 무선통신장비 전문 제조 기업임.</p>
	
	
		<p>동사 및 종속회사는 무선통신 기지국에 장착되는 각종 장비 및 부품류 등을 생산, 판매하는 RF사업과 스포츠조명, 실외조명, 실내조명등을 생산, 판매하는 LED사업을 영위하고 있음.</p>
	
	
		<p>당기말 현재 11개의 연결대상 종속회사를 보유중이며 RF사업은 5G 투자에 따른 수주 선점, LED사업은 경영 정상화를 목표함.</p>
	
	
	
	<div class="txt_notice">출처 : 에프앤가이드</div>
		<div class="btn_area_top">
			<a href="#" onclick="hidePannel('summary_lyr'); return false;"><img src="https://ssl.pstatic.net/static/nfinance/img/btn_close.gif" alt="닫기" width="11" height="11"></a>
		</div>
	<div class="bg_btm"></div>
</div>

 

 

 

 

+ Recent posts