반응형
파싱이란, 문장이나 문서를 구성하는 요소로 분해하고 이들 간의 관계를 분석하는 것이다.
- 웹 크롤링에서의 파싱은
HTML, XML, JSON
등의 데이터를 우리가 사용하기 쉬운 형태로 분석하고 변환하는 것을 말한다. - 예를 들어서,
HTML
문서를 파싱한다고 치자.HTML
은 웹 페이지의 구조를 나타내는 태그로 이루어져 있다. - 이때,
파서(parser
)는 이 태그들을 해석하고, 문서의 구조를 파악한다. 그 후 이를 트리구조로 나타내는데, 이 트리는DOM(Document Object Model)
트리라고 한다. - 이 DOM 트리를 통해 특정 요소에 접근하거나, 수정, 삭제 등의 조작을 할 수 있다.
BeautifulSoup
라이브러리의 예시코드를 보자
from bs4 import BeautifulSoup
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
and they lived at the bottom of a well.</p>
<p class="story">...</p>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
# 타이틀 태그 가져오기
title_tag = soup.title
print(title_tag) # <title>The Dormouse's story</title>
# 'p'태그 가져오기
p_tags = soup.find_all('p')
for tag in p_tags:
print(tag)
soup = BeautifulSoup(html_doc, 'html.parser')
부분이 HTML 문서를 파싱하는 부분이다.- 파싱 결과로 만들어진
soup
객체를 통해 태그를 찾거나 내용을 추출하는 등의 작업을 할 수 있다.정리하자면, 파싱은 데이터를 의미있는 부분으로 나누는 과정이라고 볼 수 있다. 웹 크롤링에서 파싱은 웹 페이지의 데이터를 우리가 원하는 형태로 추출하기 위해 필요한 과정이다. 이 파싱 과정을 통해 우리는 웹 페이지에서 필요한 정보만을 뽑아낼 수 있게 된다.
반응형