파이썬 강의/requests

파이썬 requests 0. 파이썬으로 HTTP 통신하기

마리사라 2020. 12. 9. 16:22
반응형

이번 시간부터 파이썬으로 HTTP통신을 하게 해주는 requests모듈에 관해 강의해 보려고 합니다.

 

우선 기본적으로 requests 모듈을 배우시려고 찾아오신 분들이 http 통신을 모르시진 않겠지만, http 통신에 관해 간략하게만 알려드리겠습니다.

 


0. HTTP 통신

HTTP는 Hyper Text Treansfer Protocol 또는 Hyper TexT Protocol의 약자입니다. 단어를 풀이해보자면 초월(Hyper) 문서(Text) 전송(Transfer) 규약(Protocol)으로 번역할 수 있습니다. 여기서 워드나 한글을 쓰시는 분들은 HyperText와 비슷한 단어로 HyperLink(하이퍼링크)를 들어보신 적이 있으실 겁니다. 

MS Word에서 하이퍼링크 삽입
하이퍼링크

해당 하이퍼링크를 클릭하면 바로 네이버 사이트가 나오게 됩니다. 이처럼 하이퍼링크는 원하는 주소에 해당하는 링크를 입력하거나 클릭하는것 만으로도 어딘가를 거치는 것 없이 바로 접속이 가능하다고 해서 HyperLink입니다.

 

하이퍼텍스트는 하이퍼링크처럼 Text를 얻기 위해 어딘가를 거치거나 하지 않고 바로 넘어갈 수 있어서 HyperText입니다. 대표적인 예시로 지금 보고계신 티스토리가 있습니다.

하이퍼텍스트의 예시

여러분들이 만약 openCV라는 과목을 공부하기 위해 책을 사셨다면 원하는 부분을 보기 위해 페이지를 몇장씩 넘기셔야 할 것입니다. 물론 책갈피를 꽂아 두고 그 부분을 바로 펼칠 수도 있지만, 그 책갈피를 꼽기 위해 우선적으로 책을 넘겨야 하는 부분은 동일합니다.

하지만 티스토리는 위의 예시에서 16번째 강의를 보기 위해 1번부터 15번까지의 강의를 차례차례 보고 올 필요 없이, 바로 16번째 강의를 클릭하여 볼 수 있습니다.

 

이러한 Hyper Text를 컴퓨터와 컴퓨터 또는 컴퓨터와 서버간에 효율적으로 교환하기 위해 만들어진 규약(Protocol)이 바로 HTTP라고 할 수 있습니다.


1. 실 생활에서는?

여러분들은 실 생활에서 HTTP라는것을 들어보신 적은 있으실 겁니다. 바로 인터넷 주소창에서 보셨을 겁니다.

일반적인 주소창

여기서 보이는 htttps가 바로 HTTP를 이용해서 통신을 하겠다고 하는 선언입니다. 뒤에 붙은 S는 Secure(보안)의 약자로, 암호화된 통신을 한다는 뜻입니다.

 

물론 여러분들은 HTTP를 자주 보지 못하셨을 수도 있습니다. 대표적으로 주소창에 http://www.naver.com을 입력해도 되지만 naver.com을 입력해도 똑같이 네이버로 접속이 되기 때문입니다. 하지만 일반적인 브라우저로 접속하는 모든 사이트는 HTTP통신을 하고 있기 때문에 생략해도 브라우저에서 자체적으로 추가해서 접속하는 것입니다.

 

이제 op.gg라는 롤 전적 검색 사이트를 예시로 확인해 보겠습니다. op.gg 는 https가 아닌 http를 사용하고 있어서 예시로 들기 적합했습니다.

 

http://www.op.gg 

 

롤 전적 검색 OP.GG - 전적 검색, 관전, 리플레이, 챔피언 공략, 카운터, 랭킹

롤 전적, 모든 게임의 전적, 챔프 평점, KDA, 승률을 볼 수 있고 리플을 보거나 자신의 게임을 녹화를 할 수 있습니다. 지금 바로 당신의 소환사명을 검색해보세요!

www.op.gg

이제 이 사이트에 접속하면 컴퓨터에서는 자동적으로 op.gg사이트에 통신을 보내게 됩니다.

네트워크를 확인할 수 있는 WireShark로 통신을 확인하는 사진

컴퓨터는 op.gg에게 정보를 얻고 싶다는 GET 헤더를 HTTP로 사이트에 전송하게 됩니다.

op.gg에 전송하는 HTTP 정보

op.gg는 해당 사용자에게 접근을 해도 좋다는 답변을 주게 됩니다.

op.gg에서 OK라는 답변을 HTTP로 전송받습니다.

op.gg에서 전송하는 HTTP 정보

이때 전송받는 HTTP 정보는 OK일 수도 있고, 해당 정보가 없다는 Not Found일 수도 있고, 로그인이 필요하다는 Unauthorized(권한 없음) 일 수도 있습니다.

 


2. 파이썬에서 HTTP

파이썬에서 HTTP를 보내는 방법은 크게 두 가지가 있습니다. 하나는 파이썬 기본 라이브러리에 있는 urllib모듈을 사용하는 방법과 requests라는 모듈을 새로 받아서 사용하는 방법이 있습니다. 두 가지 모두 HTTP통신을 하는 데 사용되지만, requests 모듈이 조금 더 쉬운 편이니 requests모듈을 추천드립니다.

 

사용 방법은 아래와 같습니다.

1. 파이썬 또는 명령 프롬프트에서 pip를 통해 설치한다(명령 프롬프트에서는 python을 미리 입력을 해두어 파이썬으로 pip를 사용해야 됩니다)

>pip install requests

이렇게 입력하면 pip에서 알아서 모듈을 다운로드해 줍니다.

 

2. 파이썬에서 requests 모듈을 import 한다.

import requests

 

이렇게 해두시면 requests를 사용하실 준비가 되셨습니다. 다음 강의부터는 requests의 기본적인 코드와 사용방법을 알려드리겠습니다.

 

 

반응형