Ad Block 한번만 꺼주시면 안될까요..?
IT/Python

Python과 BeautifulSoup로 웹 크롤링 하기. (뷰티풀수프)

UniCoti(유니코티) 2023. 8. 3.

웹 크롤링을 하려면 웹 크롤링을 간단하게 할 수 있도록 도와주는

모듈을 쓰는 게 일반적인데, 대표적으로 Beautiful Soup 모듈과 Selenium 모듈이 있다.


이 글에서 주로 소개할 모듈은 Beautiful Soup이다.

일단 이걸 사용하려면 cmd 창을 열어서 설치를 해줘야 한다.

윈도 검색창에 cmd 입력 + Enter를 치면 알아서 열린다.

한글 이름은 명령 프롬프트이다.

아무튼 cmd를 열어주었으면, pip install requests를 입력해 준다. (복붙 가능)

 

pip install requests

 

이렇게 입력해 주면 되고, 나는 이미 설치되어 있어서 already satisfied라는 말이 뜨는 걸 볼 수 있다.

아무튼 이제 코드 편집기로 돌아가자. 만약 본인이 VSCode를 사용하고 있다면 Python 익스텐션을 깔아줘야만 한다.

Extension

여기로 가서 검색창에 Python을 쳐주고, 최상단에 나오는 걸 다운로드하면 된다.

 

이제 코드 편집기로 돌아가서, import requests라는 코드를 적어준다.

import requests

그리고 변수를 저장해서 편하게 쓰기 위해from bs4 import BeautifulSoup를 입력해 준다.

from bs4 import BeautifulSoup

이렇게 하면 BeautifulSoup를 사용가능하다.

 

 

 

 

이제 기본적으로 크롤링할 웹의 url을 선택해야 한다.

그 의미를 갖는 코드는 htmls = requests.get(url) bs = BeautifulSoup(htmls.content, "html.parser")이다.

url = 'https://www.youtube.com/watch?v=rLNDg9A2zws' #url 변수

htmls = requests.get(url)
bs = BeautifulSoup(htmls.content, 'html.parser')

이렇게 작성해 주면 기본적인 준비는 끝난다.

BeautifulSoup의 기능들을 사용하고 싶으면 변수 bs.Method(Function)를 해주면 된다.

 

만약 여기까지 했는데 pip install.. 코드를 통해서 설치를 했음에도

코드에 오류가 나는 사람이라면 이 문제일 확률이 높으니 링크를 첨부한다.

 

https://alpaca-code.tistory.com/183 (오류 해결 글)

 

VSCode에서 파이썬 모듈을 설치했음에도 오류가 날때

얼마 전에 파이썬으로 웹 크롤링에 도전한 적이 있었는데, 웹 크롤링에 도움을 주는 여러 모듈을 설치했어야 했었다. 대표적으로 Beautiful Soup를 활용해서 진행했다. 아무튼, 오류가 난 코드는 impo

alpaca-code.tistory.com

 

가장 대표적으로, 저 url의 제목을 가져와보자.

import requests
from bs4 import BeautifulSoup

#reqeusts 라이브러리 이용 가져오기
url = 'https://www.youtube.com/watch?v=rLNDg9A2zws'
htmls = requests.get(url)
bs = BeautifulSoup(htmls.content, 'html.parser')

print(bs.find("title").contents);

이렇게 작성하면 된다. 위에는 다 기본 세팅이고,

print(bs.find("title"). contents)가 출력을 담당한다.

bs.find(문자열)은 문자열이라는 이름을 가진 html 태그를 가져온다.

예를 들어 html 구조에 자주 쓰이는 div가 있다.

 

bs.find("div")를 하면 무수히 많은 div 태그가 가져와질 것이다.

근데 find_all 이 아니라서 맨 처음 쓰인 div가 하나 가져와질 것이다.

find_all은 배열로 받아와야 한다.

 

아무튼 같은 이유로 bs.find("title")을 했기 때문에 title 태그를 가져왔고,

. contents는 그 내용을 가져와주기 때문에 저렇게 입력하고 실행 결과를 보면

이렇게 저 url의 제목이 가져와지는 걸 알 수 있다.

https://www.youtube.com/watch?v=rLNDg9A2zws

bs에는. find 말고도 매우 많은 메서드, 함수들이 존재하니까 

상황에 맞춰서 다양하게 활용하면 원하는 웹 크롤링을 할 수 있을 것이다.

 

아래의 링크는 공식문서이긴 한데 웹사이트가 좀 난해한 감이 있다.

두 개의 링크를 첨부하는데 아래 것이 UI가 편하다 번역기를 돌리거나

직접 해석할 수 있는 능력이 된다면 능력껏 해석해서 메서드의 능력을 보자.

 

https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html (공식문서)

 

Beautiful Soup Documentation — Beautiful Soup 4.12.0 documentation

Beautiful Soup Documentation Beautiful Soup is a Python library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. It commonly saves programmers h

www.crummy.com

https://tedboy.github.io/bs4_doc/ (공식문서는 아니지만 더 잘 정리됨)

 

Beautiful Soup Documentation

 

tedboy.github.io

 

하지만 클릭은 불가능하다. 클릭을 하고 싶다면 BeautifulSoup가 아니라

위에서 언급한 Selenium을 통해서 웹 크롤링을 해야 하는데,

나도 여기까지는 잘 몰라서 이후 알게 되면 글을 올려야겠다는 생각이 든다.


이상으로 도움이 되었길 바라며,

 

끝.

'IT > Python' 카테고리의 다른 글

VSCode에서 파이썬 모듈을 설치했음에도 오류가 날때  (6) 2023.08.03
Python 주석달기  (0) 2023.01.25
Python 형변환.  (0) 2023.01.24
Python 랜덤값 생성하기. Random  (0) 2023.01.24
Python if문, else if(elif), else.  (0) 2023.01.22

댓글

💲 추천 글