웹크롤링(Web Crawling)은 인터넷에 존재하는 웹페이지를 자동으로 방문하고, 그 내용을 수집하여 구조화된 데이터로 저장하는 기술이다. 이 과정을 수행하는 프로그램을 웹크롤러(web crawler), 스파이더(spider), 봇(bot) 또는 자동 수집기라고 부른다. 웹 크롤링은 검색엔진, 데이터 분석, 콘텐츠 수집, 정보 통계 등 다양한 분야에서 핵심적인 역할을 한다.
웹크롤링은 웹사이트의 구조를 탐색하고, 페이지의 HTML, 텍스트, 이미지, 링크 등 다양한 콘텐츠를 자동화된 방식으로 읽고 저장한다. 대부분의 크롤러는 특정 URL을 시작점으로 삼아, 해당 페이지의 하이퍼링크를 따라가며 다른 페이지로 이동하는 방식으로 작동한다.
크롤링의 기본 순환 과정은 다음과 같다:
- 초기 URL 목록(시드 URL, seed URL) 설정
- 페이지 요청 및 응답 수신
- HTML 또는 기타 콘텐츠 파싱
- 필요한 데이터 추출
- 하이퍼링크 분석 및 새로운 URL 목록 추가
- 위 과정을 반복
웹 크롤링은 다음과 같은 다양한 분야에서 활용된다.
- 1. 검색엔진
Google, Bing, Naver, Daum 등의 검색엔진은 웹 크롤러를 통해 웹페이지를 수집하고 색인화(indexing)하여 사용자 검색에 대응한다.
- 2. 데이터 수집 및 마이닝
뉴스 기사, 제품 정보, 리뷰, 게시글, 부동산 가격 등 웹 상의 구조화되지 않은 데이터를 수집해 정형 데이터로 가공하고 분석하는 데 사용된다.
- 3. 가격 비교 서비스
전자상거래 사이트에서 상품의 가격과 정보를 수집하여 사용자가 비교할 수 있도록 제공한다.
- 4. 트렌드 분석 및 모니터링
SNS나 뉴스 사이트에서 실시간 트렌드를 파악하거나 특정 키워드에 대한 여론을 수집하는 데 활용된다.
- 5. 웹 아카이빙
과거 웹사이트의 상태를 보존하는 목적(예: [Internet Archive](https://archive.org/web/))으로 크롤링이 활용된다.
- 6. 학술 연구
언어 데이터 수집, 정보 검색 모델 학습, 자동 요약 등 다양한 정보학적 연구에서도 크롤링이 필요하다.
작동 방식[편집]
크롤러는 일반적으로 다음의 알고리즘을 바탕으로 작동한다.
- 1. 시드 URL 초기화
크롤러는 사용자가 정의한 초기 URL 목록을 시작점으로 사용한다.
- 2. 요청 전송 및 응답 수신
HTTP/HTTPS 프로토콜을 통해 웹서버에 요청(request)을 보내고, 응답(response)을 수신한다.
- 3. 콘텐츠 파싱
HTML 파서를 통해 문서 구조(DOM)를 분석하고, 필요한 정보 및 링크를 추출한다.
- 4. URL 추출 및 큐에 저장
추출된 링크는 중복 확인 및 필터링을 거쳐 큐(queue)에 저장되고, 다시 방문할 페이지로 등록된다.
- 5. 순회 전략
- BFS (너비 우선 탐색): 페이지 간의 거리 최소화를 중시
- DFS (깊이 우선 탐색): 페이지 구조 깊이를 우선 탐색
- 우선순위 큐: 중요도, 신뢰도 등을 고려한 선별적 크롤링
정적 vs 동적 웹사이트 크롤링[편집]
웹사이트는 정적 웹페이지와 동적 웹페이지로 나뉘며, 이에 따라 크롤링 전략도 달라진다.
- 정적 웹페이지: 서버에서 완성된 HTML을 반환 → 일반 HTML 파싱만으로 크롤링 가능
- 동적 웹페이지: 자바스크립트를 통해 클라이언트 측에서 내용이 생성 → Selenium, Puppeteer 등의 브라우저 자동화 도구 활용 필요
로봇 배제 표준 (robots.txt)[편집]
웹사이트 운영자는 사이트 루트 경로에 `robots.txt` 파일을 두어 크롤러의 접근 범위를 제한할 수 있다. 이는 다음과 같은 규칙을 포함할 수 있다:
```text
User-agent: *
Disallow: /private/
Allow: /public/
크롤러는 이를 읽고 지정된 경로에 접근하지 않도록 구현되어야 한다. 그러나 법적 강제력은 없다.
주요 웹 크롤러[편집]
| 크롤러
|
개발사/기관
|
설명
|
| Googlebot
|
Google
|
전 세계 웹 색인을 위한 대표 크롤러
|
| Bingbot
|
Microsoft
|
Bing 검색엔진용 크롤러
|
| Baiduspider
|
Baidu
|
중국 내 대표 검색 크롤러
|
| AhrefsBot
|
Ahrefs
|
SEO 분석 툴 기반의 크롤러
|
| NaverBot
|
Naver
|
한국 포털 네이버의 웹 수집용 크롤러
|
| Archive.org Bot
|
Internet Archive
|
웹페이지 아카이빙용
|
웹 크롤링 도구[편집]
- BeautifulSoup: 파이썬 기반의 HTML 파서
- Scrapy: 파이썬 기반 웹 크롤링 프레임워크
- Selenium: 브라우저 자동화 도구
- Puppeteer: Node.js 기반 크롬 제어 도구
- Octoparse: GUI 기반 크롤링 도구
법적 이슈[편집]
웹 크롤링은 다음과 같은 법적 논란이 존재한다.
- 1. 서비스 약관 위반
많은 웹사이트는 서비스 약관에서 비인가 자동 수집을 금지하고 있으며, 이를 어기면 법적 분쟁이 발생할 수 있다.
- 2. 저작권 침해
저작권이 있는 콘텐츠를 무단으로 수집·복제할 경우 저작권법 위반으로 간주될 수 있다.
- 3. 개인정보 보호법 위반
사용자의 개인정보(이메일, 전화번호 등)를 수집하는 경우, 해당 국가의 개인정보보호법(PIPEDA, GDPR, 개인정보보호법 등)에 저촉될 수 있다.
- 4. 디도스(DoS) 우려
과도한 크롤링은 서버에 부하를 주어 서비스 지연을 유발할 수 있으며, 이는 기술적 공격으로 오인될 수 있다.
크롤링과 스크래핑[편집]
- 크롤링: 페이지를 순차적으로 자동 탐색하며 구조적 정보를 수집하는 과정
- 스크래핑: 특정 웹페이지에서 원하는 정보만 추출(parsing)하는 과정
- 크롤링은 스크래핑을 포함한 상위 개념이라 볼 수 있다.
크롤링 방지 기술[편집]
- robots.txt 제한
- User-Agent 필터링
- IP 차단 및 레이트 리밋
- CAPTCHA
- 로그인 요구
- 자바스크립트 난독화 및 동적 콘텐츠 로딩
같이 보기[편집]
|
 이 웹크롤링 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.
|
| 개발 : 프로그래밍, 소프트웨어, 데이터, 솔루션, 보안, 하드웨어, 컴퓨터, 인터넷 □■⊕, 모바일, 사물인터넷, 사무자동화, 디자인, 게임, 메타버스
|
|
|
| 인터넷
|
PC통신 • 그누텔라 • 네트워크 • 다크넷 • 다크웹 • 딥웹 • 무선인터넷 • 슈퍼피어 • 스타링크 • 아르파넷 • 아이투피(I2P) • 엑스트라넷 • 오버레이 네트워크 • 오투오(O2O) • 오프라인 • 온라인 • 온오프라인 • 유선인터넷 • 인터넷 • 인트라넷 • 초고속 인터넷 • 토어(토르) • 표면웹 • 프리넷 • 피투피(P2P) • 하이브리드 피투피(P2P) • 홈네트워크
|
|
|
| 인터넷 기술
|
ARP • DNS • FTP • G-클라우드 • HTTP • HTTPS • IPFS • IPv4 • IPv6 • IRC • IRI • ISBN • LDAP • MOIP • OpenSSL • OSI 7 계층 • RFC • RFID • SFTP • SOAP • SSH • SSL • SSO • TCP • TCP/IP • TLS • UCI • UDP • URI • URL • URN • VoIP • 강화 내부 게이트웨이 라우팅 프로토콜 • 검색 • 검색엔진 • 게이트웨이 • 경계 경로 프로토콜 • 내부 게이트웨이 라우팅 프로토콜 • 다운로드 • 데몬 • 동적 크롤링 • 라우팅 정보 프로토콜 • 백엔드 • 사물인터넷 • 서버 • 서버-클라이언트 • 서브넷마스크 • 세션 • 스크래핑 • 스트리밍 • 식별자 • 아이피(IP) • 업로드 • 에듀테크 • 온프레미스 • 원격 프로시저 호출(RPC) • 웹크롤링 • 유비쿼터스 • 인터넷 기술 • 자율시스템 • 정보기술 • 정보통신 • 정적 크롤링 • 채팅 • 챗봇 • 최단경로 우선 프로토콜(OSPF) • 쿠키 • 크롤링 • 클라이언트 • 키워드 • 텔넷 • 토폴로지 • 트래픽 • 패킷 • 포털 • 포트 • 프런트엔드 • 프로토콜 • 프록시 • 해시태그
|
|
|
| 이메일
|
IMAP • POP3 • SMTP • 계정메일 • 네이버 메일 • 다음 메일 • 센드메일 • 스팸 • 스팸메일 • 스팸필터링 • 아웃룩 익스프레스 • 야후 메일 • 웹메일 • 이메일 • 지메일 • 카카오 메일 • 한메일 • 핫메일
|
|
|
| 웹
|
KWCAG • WCAG • 서핑 • 시맨틱 웹 • 오프라인 웹 • 웹 • 웹 1.0 • 웹 2.0 • 웹 3.0 • 웹개방성 • 웹서비스 • 웹접근성 • 웹접근성 인증마크 • 웹주소 • 웹표준 • 웹호환성 • 피드
|
|
|
| 웹사이트
|
BBS • GNB • LNB • UI/UX • 게시판 • 관리자 사이트 • 그래픽 사용자 인터페이스(GUI) • 누리집 • 대시보드 • 동적 웹페이지 • 드롭다운 메뉴 • 랜딩 템플릿 • 랜딩 페이지 • 리더보드 • 마이홈피 • 메뉴 • 모달창 • 미니홈피 • 방명록 • 배너 • 사용자 경험(UX) • 사용자 인터페이스(UI) • 섹션 • 왼쪽메뉴 • 웹기획 • 웹사이트 • 웹페이지 • 인터페이스 • 정적 웹페이지 • 쪽지 • 캐러셀 • 커뮤니티 • 탑메뉴 • 탭메뉴 • 템플릿 • 팝업 • 페이지 • 페이지뷰 • 햄버거 메뉴 • 호버 • 홈페이지 • 화면
|
|
|
| 웹브라우저
|
넷스케이프 • 모자이크 • 브라우저 • 브레이브 브라우저 • 블록체인 브라우저 • 사파리 • 삼성인터넷 • 스윙 • 엣지 • 오시리스 • 오페라 • 웨일 • 웹브라우저 • 인터넷 익스플로러(IE) • 크롬 • 파이어폭스 • 판도브라우저
|
|
|
| 인터넷 서비스
|
구글 • 구글 미트 • 구글챗 • 구글 행아웃 • 깃허브 • 네아로 • 네이버 • 네이버 웹툰 • 네이버 카페 • 넷플릭스 • 다음 • 라이코스 • 레진코믹스 • 메일루 • 멜론 • 바이두 • 바이트댄스 • 비트토렌트 • 빌리빌리 • 빙 • 소리바다 • 스포티파이 • 아마존 웹서비스(AWS) • 애플 • 야후 • 야후재팬 • 얀덱스 • 에버노트 • 에어비앤비 • 왓챠 • 웹소설 • 웹툰 • 유튜브 • 인스타툰 • 인터넷 서비스 • 인터넷카페 • 잼라이브 • 줌 • 카카오 • 카카오 웹툰 • 카카오페이지 • 탑툰 • 텐센트 • 팟캐스트 • 패스 • 페이오니아 • 페이팔 • 해시넷 • 화상통화 • 화상회의
|
|
|
| 인터넷쇼핑
|
11번가 • 그립 • 네이버 쇼핑 • 네이버 쇼핑 라이브 • 라이브방송 • 라이브커머스 • 모바일쇼핑 • 쉬인 • 스쉐라이브 • 스타일쉐어 • 아마존 • 알리바바 • 오픈마켓 • 옥션 • 온라인쇼핑 • 위메프 • 이베이 • 인터넷쇼핑 • 인터파크 • 전자상거래 • 지마켓 • 징동닷컴 • 카카오 쇼핑 • 카카오 쇼핑 라이브 • 커머스 • 쿠팡 • 쿠팡 라이브 • 타오바오 • 테무 • 티몬 • 핀둬둬
|
|
|
| 소셜 네트워크
|
SNS(소셜 네트워크 서비스) • 구글 블로거 • 네이버 밴드 • 네이버 블로그 • 디시인사이드 • 링크드인 • 마이크로블로그 • 맞팔 • 브런치스토리 • 블로그 • 소셜 네트워크 • 엑스 (트위터) • 웨이보 • 인스타그램 • 트루스소셜 • 티스토리 • 팔로우 • 페이스북 • 플리커 • 핀터레스트
|
|
|
| 메신저
|
골프메신저 • 님버즈 • 대화방 • 두레이 • 디스코드 • 딩톡 • 라인 • 라인웍스 • 마이크로소프트 팀즈 • 메시지 • 메신저 • 버디버디 • 스냅챗 • 스노우 • 스카이프 • 슬랙 • 아이씨큐(ICQ) • 왓츠앱 • 웹메신저 • 위챗 • 잔디 • 직톡 • 채팅방 • 카카오워크 • 카카오톡 • 카톡방 • 큐큐(QQ) • 탱고 • 텔레그램 • 틱톡 • 페이스북 메신저 • 플로우
|
|
|
| 도메인
|
네임서버 • 다국어도메인 • 도메인 • 레지스트라 • 레지스트리 • 아이피 • 인터넷주소 • 인터넷키워드 • 한글인터넷주소 • 후이즈
|
|
|
| 호스팅
|
메일호스팅 • 서버호스팅 • 웹호스팅 • 코로케이션 • 클라우드 • 클라우드 네이티브 • 파킹 • 포워딩 • 호스팅
|
|
|
| 위키
|
구스위키 • 그로키피디아 • 나무위키 • 노스모크 • 더위키 • 디시위키 • 리그베다위키(엔하위키) • 리브레위키 • 미디어위키 • 바다위키 • 백괴사전 • 아이티위키 • 알파위키 • 엔하계 위키 • 요다위키 • 우만위키 • 위키 • 위키낱말사전 • 위키독스 • 위키문법 • 위키문서 • 위키문헌 • 위키미디어재단 • 위키백과 • 위키스 • 위키엔진 • 위키원 • 위키원드 • 위키트리 • 위키휴가 • 제이위키 • 제타위키 • 중국위키 • 팬덤(위키아) • 한국어 위키백과 • 한국위키미디어협회 • 항공위키
|
|
|
| 인터넷 사용자
|
가입 • 가입자 • 강퇴 • 계정 • 관리자 • 그룹 • 네트워크 관리자 • 네티즌 • 누리꾼 • 대기자 • 데이터베이스 관리자 • 등록자 • 디지털 원패스 • 로그아웃 • 로그인 • 방문자 • 방장 • 부방장 • 블로거 • 블록체인 관리자 • 비회원 • 사용자 • 사이트 관리자 • 서버관리자 • 시삽 • 시스템 관리자 • 아이디(ID) • 운영자 • 운영진 • 웹관리자 • 웹마스터 • 유튜버 • 접속자 • 정회원 • 준회원 • 차단 • 최고관리자 • 탈퇴 • 탈퇴자 • 회원 • 회원가입 • 회원제 • 회원탈퇴 • 휴면 • 휴면계정
|
|
|
| 인터넷 단체
|
IANA • ICANN • W3C • 다르파 • 유럽입자물리연구소(CERN)
|
|
|
| 위키 : 인공지능, 개발, 자동차, 교통, 아시아, 세계, 산업, 기업, 단체, 업무, 생활, 지도, 블록체인, 암호화폐, 인물, 행사, 일반
|
|