일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- NarwalFreo
- 삼성
- 파이썬
- 갤럭시탭S8울트라
- 하이퍼바이저
- 물걸레자동세척로봇청소기
- 나르왈프레오
- 빅데이터
- SSM
- 삼성소프트웨어멤버십
- hopfield network
- Neural Network
- 가상화
- BAM
- Bidirectional Associative Memory
- 증강현실
- 삼성전자 소프트웨어멤버십 SSM
- 고려대학교
- 패턴 인식
- 멤버십
- 신경망
- 구글 앱 엔진
- Friendship
- 동아리
- Google App Engine
- Python
- 물걸레로봇청소기추천
- 인공지능
- 패턴인식
- 신경회로망
- Today
- Total
정보공간_1
[6기 부산 정희록] Beautiful Soup #1 본문
Beautiful Soup #1
BeautifulSoup는 파이썬에서 간단하게 웹의 게시판이나 웹페이지의 내용을 가져오기 위한 라이브러리중의 하나입니다.
현재는 버전이 4.3.2 까지 Release되어 있고, Python 모듈 특성상 간단하게 설치가 가능합니다. 직접 예제를 통해 다양한 웹페이지의 파싱및 이미지를 간단하게 저장할 수 있으며 몇 줄 안되는 코드를 통해 어플리케이션 제작이 가능합니다. 이번시간에는 간단하게 Beautiful Soup를 소개하겠습니다. 참고는 주로 Beautiful Soup 홈페이지에서 참고하였고, 관련 용어 및 참조는 위키피디아에서 참고하였습니다.
먼저 Beautiful Soup는 파이썬 라이브러리로써 Screen-scraping 같은 프로젝트를 빠르게 개발하기 위한 모듈입니다.
Beautiful Soup는 HTML과 XML파일로부터 데이터를 뽑아내기 위한 라이브러리 입니다. 자신의 로컬컴퓨터에 HTML과 XML파일들이 존재한다면 직접 테스트를 바로 해볼수도 있으며 로컬컴퓨터에 존재하지 않는다면 웹클라이언트를 통해 접근하여 해당 HTML과 XML 파일을 다루는 방식으로 접근해야 합니다.
Beautiful Soup 3.X 버전에서는 Python 2을 지원하고 Python 3. 버전은 지원을 하지 않았습니다. 이후 나온 Beautiful Soup 4 에서 Python 3. 버전을 지원하기 시작하였고, 새로운 파서인 bs4 파서를 통해 HTML및 XML파일을 해석합니다.
Beautiful Soup4 의 기능적인 특징은 다음과 같습니다.
1. 간단하고 적은 몇개의 메소드를 통해 웹페이지를 Navigating, Searching, Modifying 할수 있습니다.
2. HTML과 XML에 명시되어 있는 Encoding 방식으로 자동으로 Convert 하며, 만약 Encoding이 명시되어 있지 않다면, 기본적으로 Unicode로 Encoding을 합니다. 직접 Encoding 방식을 명시 할 수도 있습니다.
3. lxml과 html5lib 같은 Python Parsers등을 지원하고, speed와 flexibility를 위해 다른 Parser를 사용해도 됩니다.
파이썬 라이브러리 설치방법은 매우 간단합니다. 본인의 Python 개발환경이 리눅스이든 윈도우이든 상관없이 easy_install 라이브러리나 pip 라이브러리만 있다면 매우 간단하게 설치가 가능합니다. (만약 pip나 easy_install이 없다면 Python의 다양한 모듈을 설치하기 위해서라도 이번기회에 설치하시는것을 추천드립니다.)
윈도우에서는 Python이 설치된 경로 밑에 Scripts라는 폴더가 있습니다. Scripts 폴더에서 CMD창을 통해 설치가 가능합니다.
>>> easy_install beautifulsoup4
(혹은 pip beautifulsoup4)
리눅스에서는 sudo apt-get 명령어를 통해 설치가 가능하고 마찬가지로 easy_install 이나 pip를 통해서도 설치가 가능합니다.
리눅스환경에서는 기본적으로 Python 개발환경 및 환경변수가 등록이 되어 있기 때문에 특정경로가 아니더라도 설치가 가능합니다.
>>> sudo apt-get install python-bs4
(혹은 easy_install beautifulsoup4 / pip beautifulsoup4)
easy_install이나 pip 같은 경우에는 PyPI라는 파이썬패키지인덱스에서 검색하여 모듈을 설치하기 때문에 해당 모듈이 PyPI에 등록이 되어있다면 easy_install 이나 pip를 통해 간단하게 설치가 가능하므로 파이썬을 공부하거나 개발하시는 분들은 easy_install, pip를 통해 원하는 모듈을 쉽게 설치하여 사용합니다.
Beautiful Soup 설치가 끝나면 해당 모듈을 사용하기 위해 Python은 import를 해야합니다.
from bs4 import BeautifulSoup 를 통해 BeautifulSoup를 import를하게 되고, 여기서 중요한건 bs4라는 모듈을 통해 BeautifulSoup 라는 객체를 가지고 오겠다라는 의미입니다. "from 모듈명 import 객체명" 입니다.
간단하게 Naver 메인의 html문서를 들고왔습니다. 모든내용을 다들고 오진 않았고, 간단하게 부분적인 head 부분, body 부분을 복사해왔습니다. 이제 이런 html문서를 Beautiful Soup 객체에 넣어보겠습니다.
굉장히 간단하게 사용할수 있으며 제대로 들어왔는지 확인하기 위해 soup 객체를 통해 출력해보았습니다.
prettify() 메서드는 indent를 달리하여 사용자가 조금더 트리구조적으로 볼수 있게 띄워쓰기를 통해 사용자에게 보기 편하게 출력을 하기 위한 용도로 사용되는 메서드입니다. 실제 Naver를 웹도구를 통해 DOM탐색기로 본 화면입니다.
BeautifulSoup가 조금더 세밀하게 Content를 나눠주는걸 볼수 있습니다. BeautifulSoup의 간단한 메서드를 통해 얼마나 유용하게 어플리케이션을 제작할때 이 라이브러리의 도움을 받는것이 좋은지 보여드리겠습니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 강북 홍진우] 64비트 멀티코어 OS#1 - 개발환경, 운영모드 (0) | 2014.08.07 |
---|---|
[6기 강남 윤재석] Google I/O 2014 그곳에 내가 있었다. (1) | 2014.08.07 |
[6기 강남 이승재] Signal Processing #0 (0) | 2014.08.06 |
[6기 부산 심현정] Ext JS4 파헤치기 #1 (0) | 2014.08.06 |
[6기 강북 윤덕진] Tizen OS Porting을 위한 환경구축 (0) | 2014.08.06 |