Back to Posts

파이썬 크롤링 튜토리얼 - 1 : Beautiful Soup의 개념과 사용법

Posted in crawl

Beautiful Soup 로 크롤링 하기

Selenium 은 3장에서 다룹니다.

1. Beautiful Soup 라이브러리 설치하기

Beautiful Soup는 HTML과 XML 파일로부터 데이터를 가져오기 위한 라이브러리 입니다. Beautiful Soup를 설치하기 위해 아래 명령어를 입력합니다.

pip install bs4

2. Beautiful Soup 이해하기

파이썬 파일을 하나 만들어줍니다.

touch crawler1.py

그리고 파일 안에 아래 코드를 입력합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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')

print(soup.prettify())

1: bs4 라이브러리에서 Beautiful Soup를 import 시킴
2: Beautiful Soup가 잘 작동하는지 확인하기 위해 Example Code 를 생성
19: html_doc를 html로 끌어옴
21: 끌어온 데이터를 깔끔하게 정리하여 출력

 python crawler1.py 

위 코드를 입력하여, crawler1.py 를 실행시켜 봅시다.

print한 결과를 확인해보면 html_doc의 내용이 깔끔하게 정리되어 출력됩니다. 한번 변형을 해서 html_doc를 크롤링 해봅시다.

 print(soup.title) 

17번째 줄에 있는 코드를 이렇게 변형하면 어떻게 나올까요?
<title>The Dormouse's story</title>부분이 출력됩니다. html_doc 의 title 부분을 크롤링 했습니다.

그 외에도 여러가지 기능이 있습니다. 아래에 간단하게 정리해봤습니다. 위쪽은 코드, 아래쪽은 결과값입니다.


 print(soup.title.string) 
 The Dormouse's story 

 print(soup.title.parent.name) 
 head 

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

 print(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>]

 print(soup.get_text()) 

The Dormouse's story The Dormouse's story Once upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well. ...

공식 문서를 참고하면 더 많은 Beautiful Soup 의 기능들을 확인할 수 있습니다.

Read Next

파이썬 크롤링 튜토리얼 - 2 : Beautiful Soup로 네이버 실시간 검색어 크롤링