Python Requests

shin·2022년 3월 17일
0

Python Web

목록 보기
2/6
post-thumbnail

1. requests module

import requests

2. 웹페이지 가져오기

r = requests.get('https://api.github.com/events')

3. HTTP method requests

(POST, PUT, DELETE, HEAD, OPTIONS)

r = requests.post('https://httpbin.org/post', data = {'key':'value'})
r = requests.put('https://httpbin.org/put', data = {'key':'value'})
r = requests.delete('https://httpbin.org/delete')
r = requests.head('https://httpbin.org/get')
r = requests.options('https://httpbin.org/get')

4. URL에서 매개변수 전달

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)

print(r.url)
https://httpbin.org/get?key1=value1&key2=value2

5. 응답 확인

print(r.text) # text 형식
print(r.content) # byte 형식
{
  "args": {
    "key1": "value1", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.27.1", 
    "X-Amzn-Trace-Id": "Root=1-6232fbdc-353dfda41938109174347166"
  }, 
  "origin": "35.199.166.141", 
  "url": "https://httpbin.org/get?key1=value1&key2=value2"
}

b'{\n  "args": {\n    "key1": "value1", \n    "key2": "value2"\n  }, \n  "headers": {\n    "Accept": "*/*", \n    "Accept-Encoding": "gzip, deflate", \n    "Host": "httpbin.org", \n    "User-Agent": "python-requests/2.27.1", \n    "X-Amzn-Trace-Id": "Root=1-6232fbdc-353dfda41938109174347166"\n  }, \n  "origin": "35.199.166.141", \n  "url": "https://httpbin.org/get?key1=value1&key2=value2"\n}\n'

6. 인코딩 확인 / 변환

print(r.encoding)
r.encoding = 'ISO-8859-1'
print(r.encoding)
utf-8
ISO-8859-1

7. Status codes

200

r = requests.get('https://httpbin.org/get')
print(r.status_code)
print(r.status_code == requests.codes.ok)
print(r.raise_for_status())
200
True
None

404

bad_r = requests.get('https://httpbin.org/status/404')
print(bad_r.status_code)
print(bad_r.raise_for_status())
404
Traceback (most recent call last):
  File "main.py", line 37, in <module>
    print(bad_r.raise_for_status()) # Traceback ... requests.exceptions.HTTPError: 404 Client Error ...
  File "/home/runner/Python-Challenge-1/venv/lib/python3.8/site-packages/requests/models.py", line 960, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: NOT FOUND for url: https://httpbin.org/status/404


출처 : quickstart

profile
Backend development

0개의 댓글