Crawling

Fox·2024년 1월 15일
post-thumbnail

웹 크롤링(Web Crawling)

  • 웹 크롤링이란 웹 크롤러가 수행하는 작업을 뜻한다.
  • 즉, 웹 크롤링은 웹 크롤러가 웹 페이지를 방문하고 분석하는 과정 전체를 포함한 개념이다.
  • 크롤링을 통해 수집된 정보는 검색 엔진의 데이터베이스를 구축하거나, 웹 상의 특정 정보를 수집하는데 사용된다.

예를 들어, Google의 검색 엔진은 웹 크롤링을 통해 인터넷 상의 수많은 웹 페이지 정보를 수집, 이 정보를 바탕으로 사용자의 검색 결과를 제공한다.

웹 크롤링은 법적, 윤리적인 문제를 일으킬 수도 있으므로, 크롤링을 수행할 때는 웹 페이지의 'robots.txt' 파일을 확인하고, 해당 사이트의 크롤링 허용 여부를 반드시 확인해야 한다.


웹 크롤러(Web Crawler)

  • 웹 크롤러는 인터넷에 있는 웹 페이지를 방문해서 그 내용을 분석하고, 다른 웹 페이지로의 링크를 따라가며 이 과정을 반복하는 프로그램을 뜻한다.
  • 이를 통해 웹상의 정보를 수집하고 이를 분류하거나 저장하는 데 사용된다.
  • 웹 크롤러는 또한 스파이더, 로봇, 봇 등 다양한 이름으로 불린다.

웹 크롤러의 작동 원리

  1. 웹 크롤러는 시작 URL(혹은 URL들)로부터 작동을 시작한다.
  2. 시작 URL에서 웹 페이지를 다운로드하고 페이지 내용을 분석한다.
  3. 페이지 분석 과정에서 다른 웹 페이지로의 링크를 찾아내면, 그 링크를 큐에 추가한다.
  4. 큐에서 다음 URL을 가져와 2번 과정을 반복한다.

이 과정을 통해 웹 크롤러는 웹상의 수많은 페이지를 방문하고 정보를 수집한다.


웹 스크래핑(Web Scraping)

  • 웹 스크래핑은 웹 사이트들에서 원하는 정보를 추출하는 기술이다.
  • 웹 크롤링이 웹 사이트의 정보를 일괄적으로 다운로드하는 반면, 웹 스크래핑은 특정 정보를 선택적으로 추출한다.
  • 웹 크롤링이 데이터 수집 과정의 일환인 반면, 웹 스크래핑은 수집된 데이터에서 원하는 정보를 추출하고 구조화하는 과정에 가깝다.

즉, 스크래핑은 크롤링을 통해 수집된 데이터 중에서 필요한 정보를 추출하고 정제하는 과정.

웹 스크래핑은 웹 페이지의 HTML을 읽고 원하는 데이터를 추출하기 위해 사용되는데,
이때 HTML 파싱 라이브러리나 도구가 필요하다.

Jsoup

  • Jsoup은 자바 라이브러리로, HTML에서 데이터를 쉽게 추출할 수 있게 해주는 기능을 제공한다.
  • DOM, CSS 그리고 jQuery와 같은 메서드를 활용하여 웹 페이지의 데이터를 추출하고 조작하는데 사용된다.

Jsoup의 주요 기능

  1. HTML 파싱: URL, 파일, 문자열로부터 HTML을 파싱.
  2. DOM 요소 선택, 추출, 조작: CSS 또는 jQuery와 같은 선택자를 이용하여 DOM 요소를 선택하고, 추출하고, 조작.
  3. HTML 생성, 출력: 클린(clean)하고 정규화(normalize)된 형태의 HTML을 생성하고 출력.

Jsoup의 장점

  1. 빠르고 효율적인 HTML 파싱.
  2. 쉽게 사용할 수 있는 API.

Jsoup의 단점

  1. JavaScript를 지원하지 않아 동적인 웹 페이지 처리에 한계가 있다.


Selenium

  • Selenium은 웹 브라우저 자동화 툴로, 웹 애플리케이션의 테스트를 자동화하는 데 주로 사용된다.
  • 다양한 프로그래밍 언어를 지원하며, 다양한 웹 브라우저에서 실행할 수 있다.

Selenium의 주요 기능

  1. 웹 브라우저 자동화: 웹 브라우저의 작업을 자동화하여 사람이 직접 클릭하거나 입력하는 것을 모방.
  2. 웹 애플리케이션 테스트: 웹 페이지의 동작을 자동으로 테스트하고 결과를 반환.
  3. 다양한 언어 지원: Java, C#, Python 등 다양한 언어를 지원하여 다양한 개발 환경에서 사용 가능.

Selenium의 장점

  1. 다양한 언어 지원으로 다양한 개발 환경에 적용 가능.
  2. 동적인 웹 페이지에서도 데이터 추출 가능.

Selenium의 단점

  1. 웹 브라우저를 실제로 실행해야 하므로 자원을 많이 소모한다.
  2. 설정과 사용이 다소 복잡할 수 있다.


Jsoup과 Selenium의 차이점

  • Jsoup은 HTML 파싱에 초점을 두고 있어, 웹 페이지의 데이터를 추출하는 데 특화되어 있다. 반면에, Selenium은 웹 브라우저의 자동화에 중점을 두고 있어 웹 애플리케이션의 테스트에 적합하다.
  • Jsoup은 정적인 HTML에서 데이터를 추출하는 반면, Selenium은 동적인 웹 페이지에서도 데이터를 추출할 수 있다. 즉, JavaScript로 생성된 내용을 Selenium은 처리할 수 있지만 Jsoup은 처리할 수 없다.
profile
주니어개발자 Fox 입니다 🦊

0개의 댓글