Appia의 IT세상

파이썬[Python] 뷰티풀수프, Beautiful Soup을 이용한 xml 읽기 본문

Python/Python 기본

파이썬[Python] 뷰티풀수프, Beautiful Soup을 이용한 xml 읽기

Appia 2021. 10. 10. 06:42
반응형

파이썬[Python] 뷰티풀수프, Beautiful Soup을 이용한 xml 읽기

실제 뷰티풀수프(Beautiful Soup)을 이용하여 웹크롤링을 하는 경우는 매우 많습니다. 저 또한 웹크롤링을 할 때 뷰티풀수프(Beautiful Soup)를 사용하는 경우가 매우 많았습니다. 하지만, 이 부분을 웹 크롤링이 아닌 경우에도 사용이 가능합니다. 그래서 이번 포스팅에서는 XML을 파싱할 때 이 부분에 대해서 사용을 해보고자 합니다. 

 

먼저, 이번 포스팅을 파이썬 기반으로 뷰티풀수프(Beautiful Soup)가 설치 되어 있다는 전제로 이루어집니다. 혹 설치가 되어 있지 않으시다면, 다음 포스팅을 참조하셔서 설치 해주시길 바랍니다. 

Python[파이썬 웹크롤러] 04-WebCrawler beautifulsoup4(뷰티풀 수프)설치하기

 

Python[파이썬 웹크롤러] 04-WebCrawler beautifulsoup4(뷰티풀 수프)설치하기

Python[파이썬 웹크롤러] 04-WebCrawler beautifulsoup4 (뷰티풀 수프)설치하기 및 필요성 많은 웹 크웹크롤러(WebCrawler)를 생성하는 사람들이 매우 많습니다. 그 중에서 파이썬을 사용하는 대부분 사람들은

appia.tistory.com

 

먼저, 다음과 같은 단계로 이루어질 것입니다. 

1. 파일 읽기 

2. Beautifulsoup으로 관련 xml 형태로 읽기

 

그리고 다음고가 같은 파일을 활용하여, 데이터를 추출하도록 하겠습니다. 실제 다음 데이터는 https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms762271(v=vs.85) 에 있는 샘플 데이터를 활용한 것입니다.  

 

그럼 각 부분을 진행해보도록 하겠습니다. 

1.파일 읽기 

그럼 먼저, 파일 읽기를 진행해보도록 하겠습니다. 특정 경로를 받아서, 그 경로에 있는 파일을 읽어오는 형태로 작업을 진행합니다. 

def fiel_open(file):
    #파일 읽기
    rawdata = open(file, 'r', encoding='utf-8' )

    data = rawdata.read()
    return data

 

2. Beautifulsoup으로 관련 xml 형태로 읽기

먼저, 위의 과정에서 파일읽기에서 읽어온 결과물을 BeautifulSoup을 통해서 가져왔습니다. 

def load_content(file):
    #뷰티풀 수프를 이용하여 beattiful soup 으로 읽어오는 과정
    data = fiel_open(file)
    soup = BeautifulSoup(data, "lxml")

*Parser의 경우, 저의 경우 lxml 을 사용하였을 뿐이고, 실제로는 xml, html.parser로도 동작함. 

 

그리고, 저의 경우 tilte에 있는 부분들만 출력을 하여 약간의 코드를 변형하여 다음과 같이 작성을 하였습니다. 

from bs4 import BeautifulSoup

def fiel_open(file):
    #파일 읽기
    rawdata = open(file, 'r', encoding='utf-8' )

    data = rawdata.read()
    return data

def load_content(file):
    #뷰티풀 수프를 이용하여 beattiful soup 으로 읽어오는 과정
    data = fiel_open(file)
    soup = BeautifulSoup(data, "lxml")
    data = soup.select('title')
    for item in data :
        print(item.text)


if __name__ == '__main__':
    file = r'D:\Data\example1.xml'
    load_content(file)

그런 결과 다음과 같은 결과가 나오는 것을 확인할 수 있었습니다. 

XML Developer's Guide
Midnight Rain
Maeve Ascendant
Oberon's Legacy
The Sundered Grail
Lover Birds
Splish Splash
Creepy Crawlies
Paradox Lost
Microsoft .NET: The Programming Bible
MSXML3: A Comprehensive Guide
Visual Studio 7: A Comprehensive Guide

이와 같은 방법으로 XML에 읽을 수 있습니다. 

 

파이썬[Python] xml 파싱을 위한 lxml 모듈 설치

 

파이썬[Python] xml 파싱을 위한 lxml 모듈 설치

파이썬[Python] xml 파싱을 위한 lxml 모듈 설치 업무를 하다보면, 다양한 이유에서 xml에 대한 작업을 하게 됩니다. 실제 저의 경우 사이즈가 큰 xml을 가지고 작업을 하는 경우가 매우 많습니다.

appia.tistory.com

이번 포스팅에서는 파이썬[Python] 뷰티풀수프, Beautiful Soup을 이용한 xml 읽기라는 주제로 포스팅을 해봤습니다. 실제, xml을 읽는 방법에는 자체 xml모듈을 이용하는 경우도 있습니다. 저의 경우에는 큰 형태의 xml 파일을 읽을 때, 원하는 부분만 쉽게 읽기 위해서 뷰티풀수프(Beautiful Soup)를 이용합니다. 향후에 xml 자체 모듈을 이용한 데이터를 읽는 방법에 대해서도 포스팅을 진행해보도록 하겠습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

반응형
Comments