AIVLE

Web Crwaling ① - basic

민주82 2023. 2. 17. 22:12

 

웹 크롤링을 하기전에 알아야 할 것들 !!


(1) Client & Server

Client

  • 브라우져를 통해 서버에 데이터를 요청

Server 

  • Client가 데이터를 요청하면 요청에 따라 데이터를 전송

 

 

 

(2) Get & Post

 

Get 

  • Url에 데이터가 포함된다. -> 데이터가 노출
  • 길이 제한이 있음

Post

  • Body에 데이터가 포함된다. -> 데이터가 숨겨짐

 

 

 

 

(4) Internet

 

:  인터넷은 컴퓨터로 연결하여 TCP/IP (Transmission Control Protocol/Internet Protocol) 라는 통신 프로토콜을 이용해 정보를 주고받는 컴퓨터 네트워크

 

 

 

 

(5) Cookie & Session & Cache

 

Cookie

  • Client에 저장하는 문자열 데이터로 도메인 별로 따로 저장
  • 로그인 정보, 내가 봤던 상품 정보, 팝업 다시보지 않음
  • 하나의 클라이언트에 300개, 도메인당 20개, 쿠키 하나당 4Kbyte

Session

  • Server에 저장하는 객체 데이터, 브라우져와 연결시 Session ID 생성
  • Session ID를 Cookie에 저장함으로 로그인 연결 유지  
  • 같은 브라우져로 같은 서버에 접속하면 Session ID가 같음
  • 로그인 연결 정보, 원하는 객체 데이터

Cache

  • Client나 Server의 메모리에 저장하여 빠르게 데이터를 가져오는 목적의 저장소

 

 

 

 

(6) HTTP Status Code

 

: 서버와 클라이언트가 데이터를 주고 받으면 주고 받은 결과로 상태 코드를 확인할 수 있다.

    2xx - success

    3xx - redirection (browser cache)

    4xx - request error

    5xx - server error

 

 

 

 

 

(7) Web Language & Framework

 

Client

  • HTML
  • CSS - less, sass
  • Javascript - vue.js, react.js, angelar.js, backborn.js

 

Server

  • Python - Django, Flask
  • Java - Spring
  • Ruby - Rails
  • Javascript - Nodejs (Express)
  • Scala - Play

 

 

 

 

(8) Scraping & Crawling & Spider & Bot

 

Scraping

: 데이터를 수집하는 작업

 

Crawling

: 여러페이지의 특정 데이터들을 수집하고 분류하는 작업

 

Spider or Web crawler

: 웹 데이터를 수집하는 소프트웨어

 

Bot

: 인터넷 상에서 자동화된 작업을 실행하는 소프트웨어

 

 

 

 

 

<Web Crawling>

 

웹페이지의 종류 

  1. 정적인 페이지 : 웹 브라우져에 화면이 한번 뜨면 이벤트에 의한 화면의 변경이 없는 페이지
  2. 동적인 페이지 : 웹 브라우저에 화면이 뜨고 이벤트가 발생하면 서버에서 데이터를 가져와 화면을 변경하는 페이지

 

 

 

requests 이용

: 받아오는 문자열에 따라 두가지 방법으로 구분

  • json 문자열로 받아서 파싱하는 방법 : 주로 동적 페이지 크롤링 할 때 사용
  • html 문자열로 받아서 파싱하는 방법 : 주로 정적 페이지 크롤링 할 때 사용

 

selenium 이용 

: 브라우져를 직접 열어서 데이터를 받는 방법

 

 

크롤링 방법에 따른 속도

requests json > requests html > selenium

 

 

 

 

'AIVLE' 카테고리의 다른 글

Web Crwaling ③ - 다음 환율 데이터 수집  (0) 2023.02.19
Web Crwaling ② - 네이버 주가 데이터 수집  (1) 2023.02.17
데이터 분석 및 의미 찾기  (0) 2023.02.09
데이터 처리  (0) 2023.02.07
Python 라이브러리  (0) 2023.02.06