본문으로 바로가기

[Python] 간단한 웹페이지 읽어오기

category Programming/Python 2018.03.22 00:32

간단한 웹페이지를 읽어오는 기본 기능 입니다~

urllib 패키지에 포함되어 있는 urlopen 기능을 사용하면 웹페이지의 소스를 간단하게 읽어 올 수 있습니다.

from urllib.request import urlopen

result = urlopen("http://naver.com")

print(result.read())

위에 처럼 읽어오는데 성공은 했습니다!!

그러나.. 보기가 참 어렵네요.. 심지어 결과물이 b' 로 시작하는 걸 보니 바이트로 저장이 되어있는 것 같습니다.


이걸 다 사용자가 정리를 해줘야 할까요?? 파이썬에서??ㅎㅎ

파이썬은 참 사용자들이 편하도록 만들어진 언어 같습니다. (반대로 나태해지게 만드는 언어이기도 하죠..ㅎㅎ)

가장 범용적인 라이브러리를 소개 해드리겠습니다~



BeautifulSoup 입니다! (아름다운 스프라니!!)

공식문서 : https://www.crummy.com/software/BeautifulSoup/bs4/doc/#



해당 라이브러리를 사용하면 잘못된 HTML을 수정하여 쉽게 탐색할 수 있는 XML 형식의

파이썬 객체로 변환하여 사용자에게 돌려줍니다!


파이썬 설치 시 기본으로 설치되는 라이브러리가 아니여서 설치를 진행해야 합니다.

전 언제 설치를 했었나.. 이미 포함이 되어 있네요. (아나콘다3를 설치해서 사용하는데 제가 따로 설치를 했는지는 알 길이....후후후 =_=)


어찌껀.. 기존 소스를 수정 해봅니다!

from urllib.request import urlopen
from bs4 import BeautifulSoup

result = urlopen("http://naver.com")
bs = BeautifulSoup(result.read(), "html.parser")

print(bs)

일단 결과물을 보면.. 시중에서(?) 많이 접하던 html 문서 형식으로 잘 보이죠!

이게 바로 BeautifulSoup 의 기능입니다~!


소스를 살펴보면 2줄 더 추가가 되었습니다!

from bs4 import BeautifulSoup

BeautifulSoup 매쏘드를 import 시켜줬습니다.

그리고 기존에 urlopen 매쏘드를 통해 반환된 데이터를

BeautifulSoup 매쏘드를 사용하여 한번 더 변환을 수행합니다.

bs = BeautifulSoup(result.read(), "html.parser")

BeautifulSoup 에는 여러 기능들이 많이 포함이 되어 있습니다. (잠깐 확인해본 tag 기능 이라던지..)

이렇게 만들어진 bs 객체를 가지고 원하는 데이터를 추출 할 수도 있습니다.



이렇게 웹에 있는 데이터(?)를 가져오는 첫경험을 하게 되었네요..^^

앞으로도 지속적으로 올려 보겠습니다~!


댓글을 달아 주세요

티스토리 툴바