Scraping
- 웹 스크랩핑은 웹사이트에서 데이터를 추출해서 특정 데이터 포맷으로 저장하기 위해 사용하는 기술이다.
웹 스크래퍼
라는 도구를 사용해 웹 스크랩핑을 수행한다.
- 웹 스크래퍼는 웹사이트에서 데이터를 추출하는 역할을 한다.
- 웹 스크래퍼는 특정 사이트에서 모든 데이터를 추출하거나 특정 데이터만 추출할 수 있다.
- 웹사이트의 데이터 대부분은 HTML 형식의 구조화되지 않은 데이터이다. 이런 데이터를 다양한 애플리케이션에서 사용할 수 있도록 스프레드시트 또는 데이터베이스에 구조화된 데이터로 변환하여 저장한다.
Scraper의 동작 방식
- 웹 스크래퍼는 웹사이트의 모든 HTML 코드를 가져온다.
- 웹 스크래퍼는 HTML 코드에서 필요한 데이터만 가져와 사용자에게 특정 데이터 포맷으로 데이터를 출력해준다.
- 데이터 포맷은 대부분 스프레드시트 또는 CSV 파일이고, JSON 파일 형식으로도 출력할 수 있다.
Crawling
- 웹 크롤링은 검색 엔진 인덱스 항목을 작성하기 위해 웹사이트를 방문해 웹페이지를 읽는 것을 말한다.
크롤러
또는 스파이더
라는 툴을 사용해 웹 크롤링을 수행한다.
크롤러
는 웹을 탐색하는 인공 지능 알고리즘이다.
크롤러
는 웹사이트들을 분석하고 웹사이트에 있는 페이지 링크를 계속 따라가서 정보 추출을 위한 심층 탐색을 진행한다.
- 구글, 야후, Bing 같은 유명 검색 엔진은 웹 크롤링을 진행하여 얻은 정보를 기반으로 웹페이지를 인덱싱한다.
crawler의 동작 방식
- seed 또는 URL 리스트부터 작업을 시작하여 웹페이지들을 살펴보고 카테고리화한다.
- 각 페이지를 살펴보기 전에 웹 크롤러는 웹페이지의
robots.txt
파일을 확인하는데, 이 파일은 웹사이트에 접근하는 bot들의 규칙을 명시하고 있다.
- 이 규칙은 크롤링할 수 있는 페이지나 타고 들어갈 수 있는 링크들을 정의하고 있다.
- 다음 웹페이지로 이동하기 위해, 크롤러는 하이퍼링크를 찾아서 하이퍼링크를 타고 들어간다.
- 크롤러가 타고 들어갈 수 있는 하이퍼링크는 정의된 규칙에 달려 있다.
- 웹페이지에 머무르는 동안, 크롤러는
meta tags
라고 하는 사본과 설명 데이터를 저장한 다음, 검색 엔진이 키워드를 스캔할 수 있도록 인덱싱한다.
- 이 프로세스는 페이지가 쿼리에 대한 검색 결과에 표시되는지 여부를 결정한다.
- 웹사이트 소유자가 검색 엔진이 사이트를 크롤링할 수 있는
site map
을 제출하지 않은 경우에도, 웹 크롤러는 이 사이트와 연결되어 있는, 인덱싱된 사이트부터 링크를 타고 들어가 해당 웹사이트를 찾을 수 있다.
정리
웹 스크래핑과 웹 크롤링의 비교
웹 스크래핑
- 웹사이트에서 특정 데이터를 추출하여 특정 데이터 포맷으로 저장하는 것을 말한다.
- 웹 스크래핑을 수행하는 도구는 웹 스크래퍼다.
- 웹 스크래퍼는 HTML 코드에서 필요한 데이터만 파싱하여 특정 데이터 포맷으로 출력하는 역할을 한다.
웹 크롤링
- 웹페이지를 인덱싱하기 위해 사용한다.
- 웹 크롤링을 수행하는 도구는 웹 크롤러 또는 스파이더다.
- 유저에게 검색 결과를 보여 주기 위해 검색 엔진에서 주로 사용된다.
참고