경쟁사 홈페이지 가격을 매주 수동으로 확인해서 엑셀에 옮기고 있거나, 공공기관 공고 게시판을 매일 들어가 새 글이 있는지 눈으로 확인하고 계신가요. 비전공자 파이썬 크롤링 배우는 법이 막막하게 느껴지는 이유는, “크롤링”이라는 단어가 주는 기술적 이미지 때문입니다. 실제로는 반복적으로 웹사이트를 확인하고 데이터를 옮기는 업무를 자동화하는 것이 목적이고, 필요한 지식의 범위는 생각보다 좁습니다.
이 글에서는 크롤링을 시작하기 전에 알아야 할 개념 구분, 실제 학습 순서, 그리고 초보자가 자주 놓치는 법적 주의사항을 실무 예시로 정리합니다.
웹 크롤링과 웹 스크래핑, 뭐가 다른가요
크롤링은 여러 웹페이지를 자동으로 옮겨 다니며 링크를 따라가는 행위를 말하고, 스크래핑은 특정 페이지에서 필요한 데이터만 추출하는 행위를 말합니다. 실무에서 대부분의 사무직이 필요로 하는 작업은 사실 스크래핑입니다. 예를 들어 특정 공고 게시판의 제목과 날짜만 가져오는 작업은 스크래핑이고, 여러 페이지를 넘나들며 게시판 전체를 훑는 작업이 크롤링에 해당합니다.
두 용어가 혼용되어 쓰이다 보니 처음 배우는 사람은 무엇부터 공부해야 할지 헷갈리기 쉽습니다. 실무 자동화가 목적이라면 크롤링의 복잡한 구조보다 스크래핑의 기본 원리를 먼저 익히는 편이 효율적입니다.
비전공자 파이썬 크롤링 배우는 법, 학습 순서는 이렇습니다
정답은 requests와 BeautifulSoup 두 라이브러리로 정적 페이지를 다루는 법부터 시작하는 것입니다. 이후 반복 수집을 위한 파이썬 기본 문법을 다지고, 동적 페이지가 필요할 때만 Selenium 같은 도구로 넘어가면 됩니다. 처음부터 모든 도구를 익히려 하면 오히려 진입 장벽이 높아집니다.
1단계: HTML 구조 읽는 법 익히기
크롤링의 첫 단계는 코드를 짜는 것이 아니라 웹페이지의 HTML 구조를 이해하는 것입니다. 크롬 브라우저에서 F12를 눌러 개발자 도구를 열고, 가져오고 싶은 데이터가 어떤 태그와 클래스명 안에 들어있는지 확인하는 습관이 필요합니다.
# 예시: 특정 요소가 <div class="title"> 안에 있는 경우
# 개발자 도구에서 우클릭 > 검사로 위치 확인
2단계: requests와 BeautifulSoup로 정적 페이지 수집
가장 기본이 되는 조합입니다. requests로 페이지의 HTML을 그대로 받아오고, BeautifulSoup으로 원하는 부분만 골라냅니다.
import requests
from bs4 import BeautifulSoup
url = "https://example.com/notice"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
titles = soup.select(".title")
for t in titles:
print(t.get_text(strip=True))
이 정도 코드만으로도 게시판 제목 목록을 한 번에 가져올 수 있습니다. 이후 비전공 사무직을 위한 코딩 입문 로드맵에서 다룬 대로 for문과 리스트를 활용해 여러 페이지를 순회하는 방식으로 확장할 수 있습니다.
3단계: 수집한 데이터를 엑셀로 정리
크롤링으로 데이터를 모으는 것보다 중요한 것은 그 데이터를 실무에서 바로 쓸 수 있는 형태로 저장하는 일입니다. pandas를 활용하면 수집한 리스트를 곧바로 엑셀 파일로 저장할 수 있습니다.
import pandas as pd
data = {"제목": titles_list, "날짜": dates_list}
df = pd.DataFrame(data)
df.to_excel("공고목록.xlsx", index=False)
이 부분은 엑셀 반복 업무, 파이썬으로 10분 만에 끝내기에서 다룬 pandas 활용법과 그대로 이어지는 흐름입니다.
4단계: 동적 페이지가 필요할 때만 Selenium
로그인이 필요하거나 스크롤을 내려야 내용이 나타나는 페이지는 requests만으로 처리되지 않습니다. 이런 경우에만 실제 브라우저를 자동으로 조작하는 Selenium을 배우면 됩니다. 처음부터 Selenium을 붙잡고 시작하면 학습 시간이 길어지므로, 정적 페이지 수집에 익숙해진 다음 필요할 때 확장하는 순서를 추천합니다.

크롤링, 법적으로 조심해야 할 부분이 있나요
모든 웹사이트를 마음대로 수집해도 되는 것은 아닙니다. 사이트의 robots.txt 파일을 확인해 수집이 허용된 범위를 지키고, 짧은 시간에 과도한 요청을 보내 서버에 부담을 주지 않아야 합니다. 또한 수집한 개인정보나 저작권이 있는 콘텐츠를 무단으로 재배포하면 법적 문제가 될 수 있습니다.
실무에서는 대개 공공데이터포털이나 자사와 거래처가 공개한 공고, 가격 정보처럼 수집 목적이 명확하고 상대적으로 안전한 범위에서 시작하는 것이 좋습니다. 요청 간격에 time.sleep()을 넣어 서버에 부담을 주지 않는 습관도 함께 익혀두어야 합니다.
import time
for page in range(1, 6):
response = requests.get(f"https://example.com/notice?page={page}")
# 데이터 처리
time.sleep(1) # 요청 사이 1초 대기
크롤링 배우기 전, 정말 필요한 업무인지 먼저 확인하세요
크롤링은 배워두면 유용하지만 모든 반복 업무에 필요한 기술은 아닙니다. 수집 대상 사이트가 API를 제공한다면 비전공자를 위한 API 입문에서 다룬 방식이 훨씬 안정적이고 간단합니다. API가 없고 웹페이지에서 직접 데이터를 긁어와야 하는 경우에만 크롤링을 선택하는 것이 순서입니다. 또한 수집한 데이터가 지저분한 형태로 들어오는 경우가 많으므로, 비전공자를 위한 데이터 클렌징 입문에서 다룬 정리 절차도 함께 알아두면 실무에 바로 연결됩니다.
크롤링은 코드 몇 줄로 끝나는 기술이 아니라, 어떤 데이터가 왜 필요한지부터 정리하는 과정이 절반을 차지합니다. 픽셀앤코드는 양주 지역 중소기업과 관공서를 대상으로 이런 실무형 파이썬 자동화 교육을 진행하고 있으며, 크롤링을 포함한 데이터 수집·정리 업무를 회사 상황에 맞게 설계하는 것부터 함께 검토해드리고 있습니다.