ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 웹 크롤링 데이터 xml 구조 파싱하기
    Data Analysis/Python 2025. 2. 12. 22:14

    Table of Contents

    1. Introduction
    2. MySQL 날짜 함수
    3. 날짜 함수를 활용한 데이터 조회
    4. Reference

     

    Introduction

     웹 크롤링은 웹사이트에서 자동으로 데이터를 수집하는 작업이다. 웹사이트를 하나하나 클릭하면서 데이터를 수집하는 대신, 코드를 이용해 페이지를 자동으로 요청하고 필요한 정보를 추출하는 방식이다. 웹 크롤링을 할 때는 주로 requests 같은 라이브러리를 사용해서 웹 페이지의 HTML이나 XML 데이터를 가져온다. 다만, 이런 데이터는 바로 활용할 수 없기 때문에 분석 가능한 형태로 파싱을 해야 하는데 xml.etree.ElementTree 라이브러리나 lxml 같은 라이브러리를 사용한다.

    수집한 xml 데이터 셋 일부

     

    xml.etree.ElementTree

     웹 크롤링 시 requests.get()을 이용하여 xml 데이터를 요청하고 받아온 xml 데이터는 xml.etree.ElementTree의 formstring()을 활용하여 xml 문자열을 파싱한다. 필요한 데이터를 추출하기 위해 반복되는 데이터를 findall() 함수를 사용하여 xml 자료를 탐색하고 개별 데이터를 find() 함수를 이용하여 파싱을 하게 된다.

    참고 소스
    import requests
    import xml.etree.ElementTree as ET

    # XML 데이터를 가져올 URL
    url = 'https://example.com/sample.xml'

    # XML 데이터 요청 (크롤링)
    response = requests.get(url)

    # HTTP 응답 상태 코드가 200 (정상 응답)인 경우에만 파싱
    if response.status_code == 200:
        # XML 파싱
        tree = ET.ElementTree(ET.fromstring(response.content))
        root = tree.getroot()

        # XML 구조 탐색 (예시로 모든 'item' 요소 출력)
        for item in root.findall('.//item'):  # item 요소 찾기
            title = item.find('title').text  # 'title' 요소의 텍스트 추출
            link = item.find('link').text  # 'link' 요소의 텍스트 추출
            print(f"Title: {title}")
            print(f"Link: {link}")
    else:
        print("Failed to retrieve XML data")

     

    Reference

    파이썬 documentation, https://www.python.org/doc/

    댓글

Designed by Tistory.