티스토리 뷰
Web Scraping(Crawling)
Beautiful Soup 과 DOM을 이용한 웹 스크래핑(web scraping)
DongjunYang 2019. 10. 10. 01:29해당 포스트는 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
링크
TAG
- homebrew
- deck.gl
- XMLHTTPRequest
- XHR
- 쿠키
- Anaconda
- Session
- bashrc
- IOT
- cookie
- Internet of Things
- 세션
- data visualization
- bash_profile
- Python
- OSX
- BREW
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함