210827 FUNDAMENTAL 28. 데이터 수집

문소정·2021년 8월 27일
0

AIFFEL

목록 보기
37/66

1. 인터넷과 프로토콜

  • 인코딩과 디코딩 : 텍스트 데이터의 변환과 교환
    • Python3는 UTF-8로 인코딩
  • 프로토콜(protocol) : 데이터 교환 과정에서의 규약
    • ex) 웹은 HTTP 프로토콜에 따라 데이터를 주고받음
  • 용어 정리
용어정의
Communication
(통신)
원하는 곳에 원격으로 데이터 송수신
HTTP
(HyperText Transfer Protocol)
하이퍼텍스트 전송 프로토콜
Protocol
(프로토콜)
통신 규약
HyperText- 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트
- 인터넷에 표시되는 문자열 일종의 텍스트

1) 인터넷

  • 컴퓨터들 사이의 TCP/IP통신 프로토콜에 의해 데이터의 교환이 가능한 컴퓨터 네트워크(글로벌 정보 시스템)

  • 구조

  • TCP/IP(Transmission Control Protocol / Internet Protocol)

    • 3번의 DataLink(LAN 카드)를 거쳐 1번의 물리적인 네트워크 영역을 통해 데이터 패킷을 송수신
    • 그래서 2번의 영역에서는 두 컴퓨터 간에 가상의 직통 파이프라인이라도 연결되어 있는 것처럼 데이터 송수신 할 수 있음
    • 이걸 가능하게 하는 게 3번의 Netwotk와 Transport를 구성하는 TCP-IP
    • TCP-IP기반으로 Application 영역에서 HTTP 프로토콜을 이용하는 소프트웨어
      ⇨ 웹 브라우저(ex. 크롬, 엣지, 사파리 등)

  • 소켓 통신

    • 인터넷의 논리적 최하위 레벨 (Low-Level)인 TCP-IP 프로토콜에서 일어나는 작용
    • 소켓 : 인터넷 연결용 포트
    • Endpoint(끝점)
      • 컴퓨터 네트워킹에서 인터넷 소켓, 혹은 네트워크 소켓
      • 데이터를 전달하고 전송하는 지점
    • 소켓 번호 = 포트(port) 번호
      • 80번 : HTTP 프로토콜의 서비스를 제공하는 포트(웹 브라우저가 웹서버 접속시 시용)
      • 21번 : FTP
      • 22번 : SSH
      • 23번 : telnet
  • TCP/IP

    • TCP(Transmission Control Protocol)

      • 소켓 포트 단위의 송수신 프로토콜 ⇨ 프로그램 레벨

      • Transport 영역에 소켓과 소켓 사이의 peer-to-peer 연결을 구현하는 프로토콜

      • 역할 : 포트번호를 따라 소켓까지 전달, 데이터의 흐름을 책임짐

        TCPUDP
        정식명칭Transmission Control ProtocolUser Datagram Protocol
        통신방식connection 기반 (연결형)
        쌍방향 통신 프로토콜
        비연결형 통신 프로토콜
        장점- 전송속도가 TCP보다 빠름
        - 음성, 영상 데이터 전송에 유리
    • IP(Internet Protocol)

      • IP 주소 단위의 송수신 프로토콜 ⇨ 컴퓨터 레벨
      • 역할 : 데이터가 특정 컴퓨터로 전달
    • TCP/IP 기반의 Application 프로토콜 : HTTP, HTTPS, FTP, SSH, DNS

    • TCP/IP 기반 구동 = IP주소와 포트번호를 가지고 통신한다는 뜻

    • Port Number

2. API 이용하기

  • Web

    • 표현형식(문서): HTML(Hyper Text Markup Language)
    • 전송방법(프로토콜): HTTP (Hyper Text Transfer Protocol)
    • 식별자: URI (Uniform Resource Identifier)
  • HTTP : Web 통신 규약

    • HTTP는 요청(Request) 하고, 응답(Response) 하는 서버/클라이언트 모델을 따름

    • HTTP 메세지 구성 : request/status line, header, body

    • Request Method (요청 메소드)

      Method정의
      GETread, 정보를 요청
      HEAD헤더 정보만 요청
      POSTcreate, 정보를 생성, 변형 할 때 사용
      PUTupdate, 정보를 수정
      DELETEdelete, 정보를 삭제
      OPTIONS사용 가능한 메소드 확인

    • Response Code (응답 코드) - status line에 상태코드(status code)를 포함

      코드정의
      1xx조건부 응답
      2xx성공
      3xx리다이렉션 완료
      4xx요청 오류(클라이언트에 문제가 있다는 뜻!)
      5xx서버 오류(서버에 문제가 있다는 뜻!)
      200- 서버 : 클라이언트 요청을 성공적으로 처리
      - 웹 페이지 : 페이지 요청이 정상적으로 완료되면 반환
      404찾을 수 없음. 존재하지 않는 URL을 요청하여 페이지를 접속할 수 없을 때 반환하는 응답 코드

      핵시름...🤬
    • Header (헤더)

      • 종류 : 공통헤더, 요청헤더, 응답헤더
  • URL(Uniform Resource Locator)과 URI(Uniform Resource Identifier)

    • URL : 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약 ⇨ 자원의 위치
      • ex) http://opentutorials.org:3000/main
      • URL이면서 URI
    • URI : 인터넷에 있는 자원을 나타내는 유일한 주소 ⇨ 자원의 식별자
      • ex) http://opentutorials.org:3000/main?id=HTML&page=12
      • 오로지 URI

  • API(Application Programing Interface) : 프로그램 간의 Interface

  • REST(Representational State Transfer) API(혹은 Restful API)

    • 정의 : Rest 기반의 규칙들을 지켜서 설계된 API
    • REST : 자원을 URI로 표시하고 해당 자원의 상태를 주고 받는 것
    • 구성 : 자원(Resource) - URI/행위(Verb) - HTTP METHOD/표현(Representations)

3. 크롤링

  • Web Crawler(크롤러) : 웹에서 데이터를 긁어오는 작업
  • find(), findAll() : 태그에 더 쉬운 접근 및 태그의 속성에 따라 필터링도 가능
  • 크롤링은 PHP 서버로 로그인을 할 때 사용할 수 있는 코드
    • Request URL을 보낼 때 "xxxxxx.php"형식으로 된 웹 페이지에서만 가능한 방식
  • 로그인 시, HTTP 통신 과정
  • 쿠키와 세션
항목쿠키세션
정의- HTTP 헤더를 기반으로 이루어지는 데이터
-"클라이언트 로컬(브라우저)"에 저장되는
Key-Value쌍의 작은 데이터 파일
예시내가 가지고 있는 cooki북울랄라 스파에서 가지고 있는 정보
저장위치로컬로컬&서버
보안탈취, 변조 가능ID값만 가지고 서버에도 저장됨
상대적으로 안전
Lifecycle브라우저 종류해도 파일로 남음브라우저 종료시 세션 삭제
속도빠름느림
  • Web Client
    • = 프론트엔드(Frontend)
    • JavaScript기반의 다양한 Framework (Angular, React) 등으로 구성
  • 파이썬에서 사용하는 크롤링 라이브러리
    • Beautifulsoup
    • Selenium(셀레니움) : 웹앱을 테스트하는 웹 프레임워크입니다

0개의 댓글