etc.

01. 웹 크롤링 / HTTP

code BlueJ 2019. 4. 19. 14:00
반응형

크롤링의 정의

 

무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술. 어느 부류의 기술을 얼마나 빨리 검색 대상에 포함시키냐 하는 것이 우위를 결정하는 요소로서 최근 웹 검색의 중요성에 따라 발전되고 있다.

 

R, 파이썬, 자바로 크롤링 할 수 있다.

 

 

웹크롤링이란?

 

웹페이지에서 보이는 데이터를 필요한 부분만 선택하여 수집하는 행위를 말한다.

 

웹크롤링의 4단계 과정

1. HTTP를 요청한다.

2. 응답을 받는다.

3. HTML에서 데이터를 추출한다.

4. 추출한 데이터를 전처리하고 저장한다.

 

웹크롤링 주의점

'영업권 및 지적재산권'을 침해하는 행위가 될수 있기때문에 웹사이트의 메인페이지에서 사전에 robot.txt를 쳐서 개방 범위를 확인하여야 한다.

 


robots.txt

 

robot.txt란 웹체이지를 제작할 때 제작자가 만드는 것으로 검색 엔진 크롤러에서 사이트에 요청할 수 있거나 요청할 수 없는 페이지 또는 파일을 크롤러에 지시하는 파일이다.

간단히 말하면 크롤러가 접근할 때 가져가도 되는 파일과 가져가면 안되는 파일을 구분해서 알려주는 파일이다.

메인페이지에 robots.txt를 치면 아래와 같이 나온다.

예) www.naver.com/robots.txt

 

 

 

User-agent: *           <<< robots.txt.의 규칙이 적용되는 크롤러의 이름이다. *는 모든 크롤러에 적용된다는 뜻이다.

Disallow: /              <<< 크롤러를 차단하는 URL이다. /표시는 모든 루트에 대해 크롤링을 가져가면 안된다.

Allow: /$                <<< /$가 있는 URL에 대해서는 크롤링을 허용한다.

 


HTTP

HTTP는 HyperTextTransferProtocol로 인터넷상에서 데이터를 주고받을 때 사용되며, 주로 HTML을 주고 받는다. 클라이언트가 웹서버에 데이터를 요청하고, 웹서버는 해당 요청에 대한 결과를 응답한다.

클라이언트가 데이터를 요청하고, 웹서버는 해당 요청에 대한 결과를 응답한다.

 

- HTTP Request

클라이언트가 웹서버에 HTTP 요청을 할 때, 웹서버에 제공해야 하는 요청메시지는 GET과 POST가 다르다.

GET방식은 요청라인과 요청헤더를 보내야하고, POST방식은 GET방식에 메시지 바디를 추가한 3가지를 보낸다.

 

요청라인에 URI가 포함된다.

URI(Uniform Resource Indicator),

URL(Uniform Resource Locator)

 

예)

https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=tuna

 

tuna : 네이버 통합검색

'tuna'의 네이버 통합검색 결과입니다.

search.naver.com

?를 기준으로 왼쪽이 URL, 오른쪽이 Query String이다.

 

 

- HTTP Response

웹서버는 클라이언트의 요청에 대해 응답메시지를 발송한다.

응답메시지는 응답헤더와 바디로 구성되어 있고,

헤더는 HTTP버전, 상태코드, 일시, 컨텐츠 형태, 인코딩 방식, 크기 등이 포함되며,

바디에는 HTML이 포함된다.

반응형