취업 준비/AIVLE SCHOOL

CH4. 데이터 수집4 - Web Crawing

BraveTiger 2023. 2. 27. 22:55

웹 크롤링(Web Crawling)이란?

  • 웹상의 정보들을 탐색하고 수집하는 작업을 의미한다.
  • 프로그램이나 자동화된 스크립트를 사용하여 웹 페이지에서 페이지의 정보를 인덱싱하는 프로세스
  • URL을 탐색해 반복적으로 링크를 찾고 가져오는 과정

웹 스크래핑(Web Scraping)이란?

  • 특정 웹 사이트나 페이지에서 필요한 데이터를 자동으로 추출해 내는 것을 의미
  • 자동화된 방식으로 구조화된 웹 데이터를 수집하는 프로세스
  • 크롤링한 링크를 이용해 특정 웹 사이트의 특정 데이터를 추

웹 크롤링과 웹 스크래핑의 차이점?

크롤링 스크래핑
웹 에서 페이지 및 링크 다운로드 웹을 포함한 다양한 소스에서 데이터 추출
동이한 콘텐츠가 여러 페이지에서 업로드 된 것을 인식하지 못하므로 중복 제거가 필수 특정 데이터를 추출하는 것으로 중복 제거가 반드시 필요한 것은 아님
'선탐색 후추출' '선결정 후추출'

정적 웹페이지 vs 동적 웹페이지(Static vs Dynamic)

정적 웹페이지(일정한 결괏값)

  • 웹 서버에 미리 저장된 파일이 그대로 전달된다.(HTML, image, JS file..)
  • 사용자는 서버에 저장된 데이터가 변하지 않는 이상 고정된 웹 페이지를 보게 된다.
  • 웹 서버가 HTML, CSS, JS 등을 클라이언트에게 제공

=> URL만 있으면 똑같은 정보를 언제든지 얻을 수 있다.

 

ex) 회사 소개 페이지, 나무위키...

동적 웹페이지(외부 환경(요청)에 따라 다른 결괏값)

  • 웹 서버에 있는 데이터들을 스크립트에 의해 가공처리 후 전달되는 웹 페이지
  • 사용자의 요청을 해석하여 데이터를 가공한 후 웹 페이지를 생성한다.
  • 웹 서버가 HTML, CSS, JS 등을 클라이언트에게 제공 + WAS와 직접 통신, 결과 값 가공

=> URL의 변화는 없지만 실시간으로 내용의 추가/수정이 이루어져 매번 정보가 바뀐다. 

ex) 다음 뉴스 댓글, G-marget 상품 검색 결과, Youtube, Instagram...

 

정적 수집 vs 동적 수집

  정적 수집 동적 수집
사용 패키지 requests/urllib Selenium
수집 커버리지 정적 웹 페이지 정적/동적 웹 페이지
수집 속도 빠름(별도의 페이지 조작X) 상대적으로 느림
파싱 패키지 BeautifulSoup BeautifulSoup/Selenium

출처

위키북스: 사장님 몰래 하는 파이썬 업무자동화, "정적 웹 페이지 동적 웹 페이지", https://wikidocs.net/141607, 2023-02-27

코드에프: 비개발자가 쉽게 설명하는 웹 크롤링(Crawling)과 웹 스크래핑(Scraping)의 차이점, 
"웹 크롤링", https://blog.codef.io/crawling_vs_scraping/, 2023-02-27