티스토리 뷰

해당 포스트는 python 라이브러리인 Beautiful Soup과 웹 구조인 DOM을 이용한 웹 스크래핑 방법에 관한 포스트입니다. 

 

Beautiful Soup를 DOM구조의 html 분석

Beautiful Soup 공식홈페이지에 간락한 예제가 나옵니다. 

밑의 예시를 해당 라이브러리로 파싱(분해)해보겠습니다. 

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>
"""

Beautiful Soup를 DOM구조의 html 파싱 결과

해당 라이브러리의 객체를 불러오는 python 코드는 다음과 같습니다. 

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')

 

해당 객체를 이용한 결과는 밑의 내용을 참조해주세요. 

DOM구조로 이루어진 요소(title, title.name, title.string... )들에 접근해서 읽어주는 결과는 #으로 출력되어 있으므로 참고 바랍니다. 

더 다양한 예제들은 Beautiful Soup 공식홈페이지를 참조해주세요.

soup.title
# <title>The Dormouse's story</title>

soup.title.name
# u'title'

soup.title.string
# u'The Dormouse's story'

soup.title.parent.name
# u'head'

soup.p
# <p class="title"><b>The Dormouse's story</b></p>

soup.p['class']
# u'title'

soup.a
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

soup.find_all('a')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

soup.find(id="link3")
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>

'Web Scraping(Crawling)' 카테고리의 다른 글

Cookie 와 Session  (0) 2019.10.28
DOM(Document Object Model)  (0) 2019.10.10
Ajax(Asynchronous JavaScript and XML) 란  (0) 2019.10.09
XHR (XML Http Request) 이란  (0) 2019.10.07
.bash_profile .bashrc 차이점  (0) 2019.10.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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 29 30
글 보관함