정보관리기술/데이터베이스

웹 크롤링(Web Crawling)

아이티신비 2024. 2. 13. 11:00

문제1) 웹 크롤링(Web Crawling)에 대하여 설명하시오.

답)

 

 

1. 웹 컨텐츠 수집 자동화, 웹크롤링의 개요

가. 웹크롤링(Web Crawling)의 개념

 

 
웹 크롤링 흐름도
웹 크롤링의 개념
  • 웹 크롤러를 이용해 월드 와이드 웹을 탐색하여 원하는 정보를 얻어 내거나 기억시킨 동작을 하는 컴퓨터 프로그램
  • 웹 페이지 크롤링을 통해 직접 접근해 정보를 빠르게 수집하거나 자동 이메일 수집 또는 웹 유지관리를 위해 사용
  • 모든 URL을 탐색하여 우선순위별로 다운로드를 반복수행하고, DB에 저장 후 크롤링 종료

 

나. 웹 크롤링(Web Crawling)의 동작원리

 
동작원리
설명
HTML 파싱
HTML 페이지를 가져와서, HTML/CSS등을 파싱하고, 데이터 추출
Open API 호출
Open API(Rest API)를 제공하는 서비스를 활용하여 데이터 추출
웹 크롤러 활용
Selenium 등 도구를 활용, 브라우저를 직접 조작하여 데이터 추출
  • 웹크롤러를 활용하여 자동으로 웹 데이터를 추출하는 것이 핵심임

 

2. 웹 크롤링의 아키텍처 및 주요 기술요소

가. 웹 크롤링크롤링(Web Crawling) 아키텍처

 
  • Frontier와 Agent가 Master Slave 구조로 동작하며동작하며, 이를 모니터링하는 Monitor로 구성

 

나. 웹 크롤링크롤링(Web Crawling)의 주요 기술요소

 
기술요소
역할
설명
Frontier
URL목록관리
  • URL 패턴패턴, 국가코드국가코드, 외부필터 수행수행, 함정피하기
  • Resource URL, Extracted URL , 그룹 Seed 지정
  • 특정 Main Sub URL 대상 지정 크롤링
URL 분배
  • 방문해야 할 URL 소진때까지 수행
Agent
URL 정규화
로봇 배제 표준
HTML 파싱
  • URL 표현의 일관된 형태로 변환 , URL 인코딩 적용
  • 웹사이트 로봇 접근 거부 규약 (Robots.txt)
  • HTML 소스 , 헤더 분석 및 링크 추출
Monitor
이상탐지
  • Frontier, Agent 의 검색 이상 감지 및 사용자 알림
  • URL 서버 과다 트래픽 탐지 및 검색 우선순위 변경

3. 웹 크롤링 검색 알고리즘과 웹 크롤링 도구

가. 웹 크롤링 검색 알고리즘

 
알고리즘
동작방식
특징
Crawling through
URLOrdering
URL이있는큐에서 중요페이지 우선검색
  • 웹의 일부를 크롤링 하려고 할 때 유용
  • 많은 클러스터가 웹 사이트 에 존재하면 성능이 저 하됨
Crawling the Large SitesFirst
대기중 페이지 많은 사이트
우선 크롤링
  • 큰 웹 사이트가 먼저 크롤링 됨
  • 중요한 웹 페이지더라도 작 은 웹 사이트에 속해 있으면 나중에 크롤링
N gram Based BFS
말뭉치(N Gram)기반 검색
  • 말뭉치 사이의 코사인 유사도 측정
감성반응 Web Crawler
긍/부정 어휘기반 크롤링시필터링
  • 블룸 필터 기반 감성 반응 웹크롤링 수행

 

나. 웹 크롤링크롤링(Web Crawling)에 활용되는 주요 도구

 
크롤링 도구
기능
특징
Selenium
웹 테스트 자동화 프레임워크
  • 버튼 클릭클릭, 스크롤 조작 자동화
  • 보여지는 웹페이지 전부 크롤링가능
  • 속도 느리고느리고, 메모리 점유율 높음
Python Scrapy
파이썬 크롤링
프레임워크
  • 미들웨어, javascript renderer(splash), proxy, xpath 등과 플러그인 사용가능
  • 병렬처리병렬처리, robots.txt 준수 여부여부, 다운로드
  • 속도 제어 등도 설정
Import.io
클라우드
기반 데이터
추출 플랫폼
  • 코드를 작성하지 않고 클라우드에 저장
  • CSV, Excel, JSON 형식 다운 로드 가능

 

4. 효과적인 웹 크롤링 구현을 위한 고려사항

 
구분
설명
예시
접근관리
  • 짧은 시간 동안 크롤링 대상이 되는 웹 서버에 과부하 발생 방지 필요
  • DDoS 의심
함정
피하기
  • 크롤링 진행 중에 의미 없는 URL을 무한대로
  • 발생시키는 특정 도메인에 갇혀 빠져 나 오지 못하는 경우 URL필터링 필요
  • 달력 웹
URL 정규화
  • 하나의 웹 사이트에 다른 형태의 URL이 존재 하는경우경우, 정규화 처리 필 요
HTML
Parsing
  • 정확한 문법을 지키지 않은 HTML 문서 도 파싱 가능해야 함
  • HTML비문 파싱

 


 

 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥