웹 크롤링
웹 크롤링은 인터넷에 있는 수 많은 웹페이지에서 자동으로 데이터를 수집하는 기술입니다.
크로링을 배우는 이유는 뉴스나 쇼핑 정보처럼 필요한 데이터를 자동으로 수집하여 반복적인 수작업을 줄일 수 있고
데이터 분석 머신러닝 등에 활용할 수 있습니다.
수집에 따른 분류

데이터 분석 과정

데이터 분석 과정을 음식을 만드는 과정으로 비유한 것인데
일단 요리를 하려면 먼저 재료를 구입해야합니다. 이와 마찬가지로 데이터 분석의 시작은 데이터를 수집하는 것입니다.
웹 크롤링이나 api, csv,Excel 파일 등으로 필요한 데이터를 수집합니다.
그 다음 수집한 재료를 냉장고나 저장고에 보관하듯 데이터도 마찬가지로 수집한 데이터를 안전하게 저장해야하는데
csv,Excel 등을 사용하여 저장합니다.
이젠 분석 전에 손질이 필요합니다. 이 과정을 전처리라고 합니다.
이 과정에서는 결측값을 제거하거나 대체하고 이상치 확인, 데이터 타입 정리, 중복제거, 텍스트정리 등이 있습니다.
조리 단계에서는 분석과 시각화를 합니다. 시각화를 통해 숫자를 그림으로 이해하고 텍스트라면 워드클라우드나 감성분석을 활용합니다. 이 단계에서 사용하는 라이브러리가 우리가 배웠던 pandas, seaborn, matplotlib 같은 라이브러리를 활용해서 다양한 방식으로 데이터를 가공하고 해석할 수 있습니다.
웹 통신의 이해
우리가 네이버 뉴스나 쿠팡에 접속했을 때, 브라우저는 단순히 화면만 보여주는 게 아니라, 서버와 끊임없이 대화를 나누고 있습니다.
이 대화는 바로 HTTP 프로토콜이라는 약속을 따르고,
이 구조를 이해하면 크롤러도 사람처럼 정보를 요청하고 받아낼 수 있습니다.
HTTP( HyperText Transfer Protocol) - 웹에서 문서를 요청하고 응답하는 방식
- Stateless(상태 없음): 이전 요청의 상태를 기억하지 않는다.
- Connectless(비연결성): 요청을 보내고 응답이 오면, 연결이 끝난다.
요청과 응답의 흐름
- 요청(Request): 브라우저가 서버에게 “이 페이지 줘!” 하고 요청
- 응답(Response): 서버는 “여기 있어!” 하며 HTML 문서를 돌려줌
- 렌더링(Rendering): 브라우저는 HTML을 해석해 화면에 보여줌
크롤러는 이 과정을 사람 대신 코드로 흉내 내는 도구라고 생각하면 된다고 합니다.
HTML, CSS, JavaScript – 웹을 구성하는 세 가지
HTML( HyperText Markup Language )
웹 페이지의 내용과 구조를 담당하며, 우리가 웹에서 보는 텍스트, 이미지, 표, 제목, 링크와 같은 요소들은 전부 HTML에 들어있습니다.
크로링 할 때 추출하고자 하는 대부분의 정보는 이 HTML에 속해 있습니다.
CSS( Cascading Style Sheets ) – 웹페이지의 스타일\
디잔인과 레이아웃을 담담하며 색상, 글씨 크기, 정렬, 간격, 배경 등 눈에 보이는 요소가 여기에 포함됩니다.
크롤링하는 관점에서는 데이터 수집과는 직접적인 연관이 없습니다.
JavaScript – 웹페이지의 동작 (기능)
자바스크립트는 인터랙티브한 동작을 부여하는 스크립트 언어입니다.
클릭 시 판업이 뜨거나, 버튼을 누르면 정보가 바뀌고, 스크롤하면 새 내용이 나타나는 등은 전부 자바스크립트가 하는 역할입니다.
Rendering
랜더링은 브라우저가 다양한 파일을 읽고 해석하고 분석해서 사용자에게 보이는 형태로 화면에 그려주는 과정을 말합니다.
즉, 웹페이지는 서버로부터 받은 HTML 그대로 보여주는 것이 아닌 다양한 리소스를 종합하여 가공하고 조립해서 완성된 화면을 만들어 주는 것입니다.

세 가지 핵심 라이브러리
Requests – 웹페이지 가져오기
requests는 웹서버에 요청을 보내고 HTML을 가져오는 도구입니다.
BeautifulSoup – HTML 파싱 및 정보 추출
BeautifulSoup은 요청을 통해 받은 HTML 코드를 쉽게 분석하고 원하는 요소를 추출할 수 있게 도와주는 도구입니다.
태그(<h1>, <div>, <a> 등)를 기준으로 데이터를 잘라내고 구조화할 수 있습니다.
즉 HTML을 탐색하기 쉽게 바꾸는 파서(parser) 역할을 합니다.
Selenium – 동적 페이지 제어
Selenium은 실제 웹 브라우저를 자동으로 제어하는 도구입니다.
요즘 웹페이지들은 JavaScript로 스크롤해야 보이는 데이터, 클릭해야 나오는 목록 등 동적인 구조가 많습니다.
requests로는 안 보이던 데이터도, Selenium을 쓰면 사람처럼 브라우저를 켜고 행동하며 데이터를 가져올 수 있습니다.








'ABC부트캠프' 카테고리의 다른 글
| [14일차]ABC부트캠프-기관탐방 (0) | 2025.07.20 |
|---|---|
| [13일차]ABC부트캠프 (1) | 2025.07.20 |
| [11일차]ABC부트캠프 (3) | 2025.07.20 |
| [10일차] ABC 부트캠프 - ESG포럼&세미나 (4) | 2025.07.13 |
| [9일차] ABC부트캠프 (0) | 2025.07.13 |