파이썬/python 문법 & 이론 실습

웹 클라이언트 라이브러리, 웹 클라이언트 개발

Bentist 2021. 12. 24. 13:44

먼저 클라이언트전문가에게 필요한 서비스요청하는 고객을 뜻한다.

 

웹 클라이언트는?

웹 클라이언트는 웹 서버에게 필요한 데이터(웹 페이지, 사진, 동영상)를 요청하는 프로그램이다.

즉, 웹 서버에 요청을 보내는 애플리케이션(프로그램)은 모두 웹 클라이언트라고 할 수 있다. 우리가 가장 많이 사용하는 웹 클라이언트에는 웹 브라우저(구글 크롬, 엣지, 익스플로러)가 있고, 웹 브라우저 이외에도 웹 클라이언트를 개발해서 사용하는 경우도 많다. 예로 기상청의 날씨 API를 활용해서 만든 날씨 정보 앱도 웹 클라이언트라고 볼 수 있다.

 

파이썬은 이런 웹 클라이언트를 만들 수 있도록 여러가지 표준 라이브러리를 제공하고 있다.

표준 라이브러리 중 urllib 패키지웹 클라이언트를 개발하는데 주로 사용한다.

 

  • 표준 라이브러리: 파이썬에 기본으로 설치된 모듈(ex. math)과 패키지(urllib), 내장함수(print)를 묶어 놓은 것
  • 패키지: 여러 모듈(urllib 패키지 안의 parse, request, response, error 등)을 묶어 놓은 것
  • 모듈: 특정 기능을 .py 파일 단위로 작성한 것(각종 변수, 함수, 클래스를 담고 있는 파일)

* 표준 라이브러리(math, random, urllib, numpy, pandas...) 이외에 pip install을 통해 다양한 패키지 사용 가능

 

ex) 패키지 사용하기

# 패키지 가져오기
import 패키지.모듈
import 패키지.모듈A, 패키지.모듈B
from 패키지 import 모듈

ex) import urllib.request
    box = urllib.request.urlopen('https://bentist.tistory.com/')


# 패키지.모듈에 이름 부여하기
import 패키지.모듈 as (패키지.모듈)에 이름 부여

ex) import urllib.request as r
    box = r.urlopen('https://bentist.tistory.com/')
    

# 패키지 모듈의 기능 가져오기
import 패키지.모듈 import 변수, 함수, 클래스

ex) from urllib.reqeust import urlopen(함수), Request(클래스)
    box = Request('https://bentist.tistory.com/')
    response = urlopen(box)
    response.status
    >>> 200
    
 
# 패키지 모듈의 일부에 이름 지정하기
import 패키지.모듈 import 변수/함수/클래스 as 이름

ex) from urllib.request import Request as r, urlopen as u


# 표준 모듈 가져오기
import 모듈명
import 모듈명 as 이름


ex) import math
    math.pi
    >>> 3.141592..
    
    math.sqrt(4)
    >>> 2.0
    
    import math as m
    m.pi
    >>> 3.141592...
    
    
# 모듈 중 일부 가져오기
from 모듈 imort 변수, 함수, 클래스, *(전부 다)

ex) from math import pi
    pi
    >>> 3.142952...
    from math import pi, sqrt

 

urllib.request을 사용해서 웹 클라이언트 프로그램 만들기

urllib.request 모듈에서 가장 기본이 되는 urlopen() 함수를 이용한다.

urlopen(url, data=None)
  • url 매개변수는 문자열이거나, Request 클래스의 인스턴스가 올 수 있다.
  • data는 요청 방식으로 GET이 디폴트 값이고, Post 요청은 data 인자에 질의 문자열을 지정한다.

GET 방식으로 요청하기

위 프로그램은 웹 브라우저의 주소창에 www.naver.com 이라고 입력하는 것과 동일한 데이터를 웹 서버에 요청해서 가져온다. 그러나 웹 브라우저는 HTML 형식의 데이터를 화면에 보기 좋게 보여주는 것 뿐이고, 위의 웹 클라이언트 프로그램은 HTML 형식의 데이터를 디자인 없이 그대로 보여준다는 차이가 있을 뿐이다.

웹 서버에서 받은 데이터를 보면 알 수 없는 내용이 출력되는데, 이는 컴퓨터가 이해하고 있는 바이트 타입을 넘겨줬기 때문이다. 이 형식을 다시 사람이 이해할 수 있는 문자열로 바꿔주기 위해 아래처럼 디코딩이 필요하다.

 

* 바이트와 유니코드 참고: https://bentist.tistory.com/38

decode화된 html 파일