Python HTTP 요청 requests 라이브러리 알아보기

오늘은 Python으로 http 요청하는 라이브러리인 requests를 적용해보려 합니다.

requests 설치

우선 virtualenv로 파이썬 환경을 분리해줍니다.

pip3 install virtualenv
virtualenv -mvenv env

env라는 이름의 가상 환경을 생성합니다.

source env/bin/activate

가상환경을 폴더에서 활성화합니다.

pip3 install --upgrade pip

pip의 업그레이드가 존재하는지 확인하고 진행합니다.

 pip install requests

pip로 requests를 설치합니다.

get

import requests


r = requests.get('https://api.github.com')
print(r)
print(r.content, type(r.content))
print(r.text, type(r.text))
print(r.url)
print(r.headers)
print(r.status_code)

특정 url을 get으로 가져올 수 있습니다.

또한 content는 바이트, text는 문자열로 가져옵니다.

url은 최종으로 가져올 때의 주소, headers는 응답 헤더를 반환합니다.

post

import requests


r = requests.post('https://httpbin.org/post', data={'key': 'value'})
print(r)
print(r.content, type(r.content))
print(r.text, type(r.text))
print(r.url)
print(r.headers)
print(r.status_code)

특정 url을 post로 가져올 수 있습니다.

또한 content는 바이트, text는 문자열로 가져옵니다.

url은 최종으로 가져올 때의 주소, headers는 응답 헤더를 반환합니다.

put

import requests


r = requests.put('https://httpbin.org/put', data={'key': 'value'})
print(r)
print(r.content, type(r.content))
print(r.text, type(r.text))
print(r.url)
print(r.headers)
print(r.status_code)
import requests


payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)
print(r)
print(r.content, type(r.content))
print(r.text, type(r.text))
print(r.url)
print(r.headers)
print(r.status_code)

특정 url을 get으로 가져오면서 파라미터를 같이 전달할 수 있습니다.

또한 content는 바이트, text는 문자열로 가져옵니다.

url은 최종으로 가져올 때의 주소, headers는 응답 헤더를 반환합니다.

헤더

import requests


headers = {'user-agent': "Mozilla/5.0"}
r = requests.get('https://www.google.com/search?q=python', headers=headers)

헤더를 같이 첨부해서 http 요청을 남길 수 있습니다.

쿠키

import requests


r = requests.get('https://httpbin.org/cookies', cookies=dict(hello_cookies='hello,world!'))
print(r.text)

쿠키를 첨부할 수 있습니다.

Written on May 29, 2019