본문 바로가기
코딩/파이썬

[파이썬 크롤링] 04 - BeautifulSoup

by 일호15 2023. 1. 16.

안녕하세요~ 일호15 입니다!
제목에 BeautifulSoup이 두번이나 들어가있네요.

지난 배경설명 글들에 이어, 드디어 다룰 때가 되었음을 의미하는 것만 같네요.

 

from bs4 import BeautifulSoup
import requests

url = 'https://dlfgh15.tistory.com/category/%ED%8C%8C%EC%9D%B4%EC%8D%AC%20%EC%B2%AB%EA%B1%B8%EC%9D%8C%3A/a%20%3D%20%27%EA%B0%9C%EB%85%90%27'
selector = 'div.inner span.title'  #HTML과 CSS를 알아야 제목 정보를 고를 수 있다.

R = requests.get(url)
B = BeautifulSoup(R.content, 'html.parser')
titles = B.select(selector)

for title in titles:
    print(title.get_text())

크롤링 개요 포스팅에서 예제로 남긴 코드를 뜯어볼 예정입니다.

오늘은 BeautifulSoup을 집중적으로 공략해 보겠습니다!

 

>> [파이썬 크롤링] 01 - 개요

 

 

1 지난 이야기

더보기

 

requests를 통해 홈페이지의 HTML을 받아왔었습니다. 좋은 단백질 공급원이었죠.

 

>> [파이썬 크롤링] 03 - requests

 

 

 

2 from bs4 import BeautifulSoup

더보기

 

우리는 BeautifulSoup을 사용해볼 것입니다. 그런데 import BeautifulSoup 앞에 붙은 from bs4는 무엇인지 살짝 짚어볼게요!

 

bs4라는 모듈(.py 파일) 안에 BeautifulSoup 클래스가 정의되어 있는데요. 우리가 크롤링 하는 과정에는 해당 클래스만 이용하면 되고, bs4 모듈의 다른 클래스는 이용할 필요가 없어요!

 

이게 무슨말이냐.. 시장에 가면~ 떡볶이도 있고, 핫도그도 있고, 아이스크림도 있는데요. 우리는 이 시장을 통째로 빌릴 필요는 없고, 부분적으로 원하는 것만 골라서 이용하는 것이죠. 떡볶이를 사먹기 위해 시장 전체를 한바퀴 돌아야만 한다면, 컴퓨터 입장에서는 로딩이 느려지고 렉이 걸리게 되는 느낌!

 

반대로 bs4의 모든 클래스를 이용하는 것이 아니라, 많고많은 것들 중에 BeautifulSoup만 이용하겠다고 하면, 떡볶이만 딱 사먹고 집에 갈 수 있게 되어 연산량이 줄어들게 될 것이고요!

 

우리는 BeautifulSoup만을 설치할 수는 없고, 끼워파는 몇가지가 있기에  bs4를 설치해주면 되겠습니다!

터미널/콘솔창에 pip install bs4 를 입력하셔서 다운받으시거나, 안되면 네이버 검색을 통해 bs4를 설치해주세요!

 

 

 

3 soup = BeautifulSoup(res.content, 'html.parser')

더보기

 

res.content가 무엇인지는 지난 이야기에서 살펴보실 수 있습니다. HTML인듯 아닌 무언가였죠.

 

BeautifulSoup을 활용하는 방식은 HTML인듯 아닌 무언가HTML로 바꿔주는 것입니다! 이를 위해 html.parser를 알아볼 필요가 있겠네요.

 

singer는 노래하는 사람, parser는 parse를 하는 주체입니다. 그렇다면 parse는 무엇인가. 초록창에 검색해보면 '(문장을 문법적으로) 분석하다' 라는 뜻이네요. 'res.content분석하여 python이 활용할 수 있게끔 만든다' 라고 하면, 크롤링을 배우는 우리에겐 실전적 정의가 될 수 있겠습니다.

 

 

산타클로스에게 선물을 받고 싶다면 다른 글도 읽어보자.
산타클로스한테 선물받고 싶으면 이 블로그에서 다른 글들 읽어보면 된대. 나도 34년째 읽는중ㅋㅋ

 

 

다음 글 >> [파이썬 크롤링] 05 - select, select_one

 

반응형

댓글