매번 웹사이트에 접속해서 정보를 복사하고 붙여넣는 작업은 정말 지루합니다. 웹 크롤링은 파이썬이 사람 대신 웹 페이지를 방문하여 내용을 읽어오는 기술입니다. 오늘은 크롤링의 기본기인 '데이터 가져오기'부터 시작해 보겠습니다.
1. 준비물: 라이브러리 설치
웹 페이지를 가져오기 위해서는 'requests'(웹 요청)와 'BeautifulSoup'(데이터 분석) 라이브러리가 필요합니다. CMD창에 아래 명령어를 입력하세요.
pip install requests beautifulsoup4
2. 웹 페이지 정보 가져오기 (requests)
웹 크롤링의 첫 단계는 웹사이트에 "이 페이지 보여줘"라고 요청을 보내는 것입니다.
import requests
url = "https://www.google.com"
response = requests.get(url)
print(response.status_code) # 200이면 성공
# print(response.text) # 페이지의 전체 소스 코드 출력
status_code가 200이면 성공입니다. 여러분은 방금 파이썬을 이용해 구글 서버에 접속하여 데이터를 받아오는 데 성공한 것입니다.
3. 원하는 정보 골라내기 (BeautifulSoup)
받아온 데이터는 마치 메모장처럼 복잡한 HTML 소스 코드 덩어리입니다. 여기서 우리가 원하는 특정 정보(예: 뉴스 제목, 상품 가격)만 뽑아내려면 'BeautifulSoup'을 써야 합니다.
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, "html.parser")
# 예: 페이지 내의 모든 'title' 태그 내용을 찾기
page_title = soup.title.string
print(page_title)
웹 페이지의 구조(HTML)는 태그로 이루어져 있는데, BeautifulSoup은 이 태그를 기준으로 데이터를 찾거나 잘라내기에 최적화되어 있습니다.
4. 실전 팁: 웹사이트 예절(Robots.txt)
웹 크롤링을 할 때 가장 주의할 점은 '상대 서버에 너무 큰 부담을 주지 않는 것'입니다. 1초에 수십 번씩 요청을 보내면 서버가 다운될 수 있습니다. 또한, 웹사이트마다 "크롤링을 허용할지"를 정해둔 규칙이 있습니다. 이를 robots.txt라고 하는데, 사이트 주소 뒤에 /robots.txt를 붙여서(예: google.com/robots.txt) 확인하는 습관을 들이는 것이 좋습니다.
또한, 사이트가 구조를 바꾸면 기존 크롤링 코드가 작동하지 않을 수 있습니다. 그래서 크롤링 코드는 한 번 짜고 끝나는 게 아니라, 가끔 점검해 주는 유지보수가 필요합니다.
[핵심 요약]
웹 크롤링은
requests로 페이지를 가져오고BeautifulSoup으로 필요한 데이터를 추출하는 과정이다.웹사이트 서버에 부하를 주지 않도록 적절한 요청 간격을 유지해야 한다.
웹 페이지의 구조 변화에 대비하여 정기적인 코드 점검이 필요하다.
👉다음 편에서는 이렇게 자동화한 코드를 짜다가 문제가 생겼을 때, 당황하지 않고 원인을 찾아 고치는 '디버깅(Debugging)' 노하우를 다루어 보겠습니다. 코딩의 80%는 사실 '버그와의 싸움'이니까요.
오늘 웹 크롤링의 기초를 배우셨는데, 평소 업무를 하시면서 "웹사이트 어디에 있는 데이터를 자동으로 긁어오면 정말 좋겠다"라고 생각하신 적이 있나요? 예를 들어 "경쟁사의 상품 가격"이나 "특정 포털의 뉴스 기사" 같은 것들 말이죠. 댓글로 공유해 주시면 다음번 실습 예제로 활용해 보겠습니다!
0 댓글