Language/Python

[Python] requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Ella_K 2022. 7. 10. 01:16

๐Ÿ”ฅ requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

requests๋Š” ํŒŒ์ด์ฌ์œผ๋กœ HTTP ํ†ต์‹ (์š”์ฒญ ↔ ์‘๋‹ต)์ด ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

๐Ÿ‘‰ ํŒจํ‚ค์ง€ ์„ค์น˜

pip install requests

 

๐Ÿ‘‰ ์‘๋‹ต ์ƒํƒœ

  • ์ƒํƒœ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์š”์ฒญ์ด ์ž˜ ์ฒ˜๋ฆฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ์‘๋‹ต ๊ฐ์ฒด์˜ status_code ์†์„ฑ์„ ํ†ตํ•ด ์‘๋‹ต ์ƒํƒœ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
import requests

response = requests.get("https://jsonplaceholder.typicode.com/users/1")
print(response.status_code) # 200
url "https://jsonplaceholder.typicode.com/users/1"๋กœ get ์š”์ฒญ์„  ํ•˜๊ณ , response๋กœ ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š”๋‹ค.
response๊ฐ€ ์‘๋‹ต ๊ฐ์ฒด์ด๋‹ค.

 

๐Ÿ‘‰ ์‘๋‹ต ์ฝ์–ด์˜ค๊ธฐ

  • content ์†์„ฑ์„ ํ†ตํ•ด ๋ฐ”์ด๋„ˆ๋ฆฌ ์›๋ฌธ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
import requests

response = requests.get("https://jsonplaceholder.typicode.com/users/1")
rcontent = response.content
print(rcontent)
# b'{\n  "id": 1,\n  "name": "Leanne Graham",\n  "username": "Bret",\n  "email": "Sincere@april.biz",\n  "address": {\n    "street": "Kulas Light",\n    "suite": "Apt. 556",\n    "city": "Gwenborough",\n    "zipcode": "92998-3874",\n    "geo": {\n      "lat": "-37.3159",\n      "lng": "81.1496"\n    }\n  },\n  "phone": "1-770-736-8031 x56442",\n  "website": "hildegard.org",\n  "company": {\n    "name": "Romaguera-Crona",\n    "catchPhrase": "Multi-layered client-server neural-net",\n    "bs": "harness real-time e-markets"\n  }\n}'

 

  • text ์†์„ฑ์„ ํ†ตํ•ด UTF-8๋กœ ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
import requests

response = requests.get("https://jsonplaceholder.typicode.com/users/1")
rstring = response.text
print(rstring)

 

  • ์‘๋‹ต ๊ฐ์ฒด๊ฐ€ json ํฌ๋งท์ด๋ผ๋ฉด json()ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์ „ ํ˜•ํƒœ๋กœ ์‘๋‹ต ๊ฐ์ฒด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
import requests

response = requests.get("https://jsonplaceholder.typicode.com/users/1")
rjson = response.json()
print(rjson)
# {'id': 1, 'name': 'Leanne Graham', 'username': 'Bret', 'email': 'Sincere@april.biz', 'address': {'street': 'Kulas Light', 'suite': 'Apt. 556', 'city': 'Gwenborough', 'zipcode': '92998-3874', 'geo': {'lat': '-37.3159', 'lng': '81.1496'}}, 'phone': '1-770-736-8031 x56442', 'website': 'hildegard.org', 'company': {'name': 'Romaguera-Crona', 'catchPhrase': 'Multi-layered client-server neural-net', 'bs': 'harness real-time e-markets'}}

print(rjson['username']) # Bret

 


Source