웹 크롤링(Web crawling)과 웹 스크래핑(Web scraping)은 둘 다 인터넷 상의 웹 페이지를 데이터를 추출하는 기술이지만, 약간의 차이가 있습니다.
웹 크롤링(Web Crawling)이란
웹 크롤링은 검색 엔진과 같이 웹을 탐색하고 인덱싱하는 프로세스입니다.
크롤러 혹은 스파이더라 불리는 프로그램이 인터넷을 순회하여 웹 페이지의 링크를 따라가며 정보를 수집합니다.
이는 주로 검색 엔진이 웹 페이지를 인덱싱하여 사용자가 검색 시 검색 결과를 제공하는 데 사용됩니다.
웹 스크래핑(Web Scraping)이란
웹 스크래핑은 웹 사이트에서 원하는 데이터를 추출하는 프로세스입니다.
보통은 특정 웹 페이지에서 필요한 정보를 가져와서 분석, 가공하거나 저장합니다.
스크래핑은 웹 크롤링을 포함할 수 있지만, 크롤링은 단순히 웹 페이지를 돌아다니는 것에 그치는 반면, 스크래핑은 웹 페이지의 내용을 읽어와서 그 중에서 필요한 데이터를 추출하는 작업을 포함합니다.
요약하자면, 웹 크롤링은 웹을 탐색하고 데이터를 수집하는 프로세스의 일부분이며, 웹 스크래핑은 특정 웹 페이지에서 데이터를 추출하는 작업입니다.
구분 | 웹 크롤링 | 웹 스크래핑 |
목적 | 웹 페이지 탐색 및 인덱싱 | 특정 데이터 추출 |
대표 기능 | 링크 따라가기, 페이지 구조 분석 | HTML 파싱, 정보 추출 |
사용 예시 | 검색 엔진, 사이트맵 생성 | 가격 비교 사이트, 뉴스 수집, 데이터 분석 도구 |
포함 관계 | 스크래핑을 포함할 수도 있음 | 크롤링 기능을 포함할 수도 있음 |
사실 나도 평소에 "웹 크롤링"이라는 표현을 자주 쓰지만, 엄밀히 말하면 내가 하는 작업은 "웹 스크래핑"에 가깝다.
내가 구현하는 로직은 무작정 링크를 따라다니기보단, 특정 URL의 구조를 이해하고 거기서 필요한 데이터만 추출하는 일이기 때문이다.
웹 페이지 구조가 자주 바뀌면 대응도 해야 하고, 동적 로딩에 대응하기 위한 처리를 하기도 하고..
이렇게 헷갈리는 두 개념을 정리해보았습니다.
찾아와주셔서 감사합니다:)
'데이터 엔지니어링 > Crawling' 카테고리의 다른 글
[Python] 페이지 요청 보낼 때 가상의 유저 만들기 - fake_useragent (0) | 2024.03.27 |
---|---|
[Python] json 에러 교정하기 (0) | 2023.10.23 |
[Selenium] iframe 변경하는 방법 / 상위 프레임으로 변경하는 방법 (0) | 2022.08.18 |
[Crawling] https 403에러 발생 해결방법 (0) | 2022.08.17 |
[Selenium] 버튼 클릭해서 나오는 값 동적 크롤링 하는 방법 (0) | 2022.08.16 |