[Web] 크롤링(Crawling)이란?

[Web] 크롤링(Crawling)이란?



크롤링의 사전적 의미는 기어다닌다는 뜻인데, 전산쪽에서는 Web상을 돌아다니면서 정보를 수집하는 행위..

웹 크롤링(Web Scraping)

  • 컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것
    • 엄청난 분량의 웹 문서를 사람이 일일 구별해서 모으는 일은 불가능에 가까움
    • 그래서, 웹 문서 검색에서는 사람이 일일이 하는 대신 이를 자동으로 해줌
    • 웹이 기본적으로 HTML형태(어떤 정형화된 형태)로 되어 있기 때문에,  이런 규칙을 분석해서 우리가 원하는 정보들만 뽑아오는 것
  • 우리가 흔히 부르는 웹 크롤러 크롤링의 정식명칭은 'Web Scraping'
    • 외국 자료를 찾으려고 하니까 'Web Crawling'보다는 'Web Scraping'이라는 용어를 더 자주 사용함
  • Python으로 크롤링 하는 소스들이 가장 흔함
  • + 외국 자료를 검색할때는 "Web Scraping with something"이런식으로 검색하면 더 잘나옴

크롤링 메커니즘

  1. 대상 선정
  2. 데이터 로드
  3. 데이터 분석
  4. 데이터 수집

1.  대상선정

  • 웹 상의  데이터는 고유한 ID를 가진다. URI라고 부르며, 이는 우리가 잘 아는 웹 사이트 주소인 URL과 RUN이 있다.
  • 간단하게 과일에 대한 네이버 검색 결과를 크롤링하려면 (URL을 선정하는 과정)
    • https://search.naver.com/search.naver?query=사과 

2. 데이터 로드

  • 데이터 로드는 웹 사이트를 켜는것과 같다.
    • 만약 API라면 -> XML, JSON문서
    • 웹페이지 -> HTML문서를 다운 받는 것

3. 데이터 분석

  • 로드된 데이터에서 필요한 부분을 뽑아내는 것을 뜻한다.
  • 당연하게도 웹 사이트상에는 내가 필요로 하지 않는 부분이 많다.
  • 어떤 부분을 수집할지, 어떤 부분을 수집하지 않을지 선정하는 과정

4. 수집

  • 데이터 분석 과정을 통해서 수집할 내용을 선정한 후
    • 이를 추출하여 파일 또는 데이터를 메모리상에 저장하는 과정


+ 크롤링은 머신러닝을 할때도 사용된다




출처

댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?