웹크롤링 - requests와 BeutifulSoup 라이브러리 사용

Jisu Park·2021년 6월 27일
0

오늘의개발일지-TIL

목록 보기
5/12
post-thumbnail
post-custom-banner

🔍 웹 크롤링이란?

크롤링과 스크래핑

나무위키에 따르면 웹페이지를 그대로 가져와서 거기서 데이터를 추출하는 행위를 크롤링(crawling) 혹은 스크래핑(scrapping)이라고 합니다.

좀 더 엄밀하게 따지면 크롤링과 스크래핑은 구분되어 있는 개념입니다. 크롤링은 다양한 웹사이트의 페이지를 브라우징하는 작업을 의미한다고 합니다. 즉, 데이터를 수집하는 브라우징 과정이 크롤링에 해당하는 셈입니다.
하지만 수집한 데이터를 모두 사용하지는 않습니다. 분명 필요하지 않은 데이터들도 섞여있기 때문입니다. 여기서 원하는 데이터를 추출하는 과정을 스크래핑(scrapping)이라고 합니다. 결국 데이터를 수집하는 궁극적인 목표가 필요한 데이터 추출이기 때문에 두 과정은 일반적으로 분리될 수 없습니다. 그렇기 때문에 크롤링과 스크래핑을 혼용되어 사용된다고 합니다.

파이썬에서의 웹크롤링

파이썬으로 웹크롤링을 하기 위해서는 requests라는 라이브러리와 BeautifulSoup이라는 라이브러리가 필요합니다. 먼저 터미널에서 아래와 같이 requests와 bs4를 설치합니다. bs4를 설치해야 BeautifulSoup를 사용할 수 있습니다. 각 라이브러리가 필요한 이유는 아래에서 차차 설명하겠습니다.

pip install requests bs4

그리고 난 뒤 사용할 파이썬 파일을 오픈하고 아래와 같이 reqeusts와 BeautifulSoup를 import해주면 준비운동은 끝난 셈입니다.

import requests
from bs4 import BeautifulSoup

📍 requests

웹페이지 가져오기

requests 라이브러리의 역할은 쉽게 말해 웹페이지를 가져오는 것입니다. 웹페이지는 HTML(HyperText Markup Language)로 작성된 문서입니다. 결국 이 HTML로 작성된 내용을 가져오기 위해 requests를 사용하는 셈입니다.

import requests
from bs4 import BeautifulSoup

url = "가져오려는 웹페이지의 url" # ex. https://namu.wiki/w/%ED%81%AC%EB%A1%A4%EB%A7%81
html = requests.get(url)

여기서 html을 프린트해보면 HTML로 작성된 문서가 출력되는 것을 확인할 수 있습니다. 제대로 필요한 내용을 출력하였는지 확인하기 위해서는 "가져오려는 웹페이지"에서 크롬의 개발자 도구를 켜서 Elements 파트에 위치한 HTML 문서와 비교하면 됩니다.

requests의 get 메소드

살짝만 짚고 넘어가자면 requests의 get 메소드는 HTTP 요청 메소드 중 GET 메소드와 동일한 기능을 합니다.

여기서 잠깐!
HTTP 요청 메소드 중 하나인 GET 메소드는 주로 데이터를 조회할 때 사용하는 메소드로, 보내는 url에 데이터를 포함하기 때문에 전달할 수 있는 데이터양의 한계가 있다는 점과 보안에 취약하다는 특징이 있습니다.

더 참고하기 좋은 자료: requests 모듈 살펴보기


🛒 BeautifulSoup

requests로 가져온 HTML 문서를 프린트해보면 알겠지만, HTML 문서에는 온갖 데이터가 다 포함되어 있어 뭐가 뭔지 알아보기가 쉽지 않습니다. 그렇기 때문에 이러한 HTML 문서를 탐색해서 원하는 데이터만 추출하기 위해 필요한 라이브러리가 바로 BeautifulSoup입니다.


📚 Reference

https://twoearth.tistory.com/19
https://news.samsungdisplay.com/22907/
https://namu.wiki/w/%ED%81%AC%EB%A1%A4%EB%A7%81

profile
언젠간 데이터 분석을 하고 싶은 초짜 프론트엔드 개발자입니다🙃
post-custom-banner

0개의 댓글