Search

requests > GET ๋ฐฉ์‹

๋ชฉ์ฐจ

requests

โ€ข
Python์œผ๋กœ HTTP request๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ํŒจํ‚ค์ง€
โ€ข
์†๋„๊ฐ€ ๋น ๋ฆ„
โ€ข
Javascript ์‹คํ–‰์€ ๋ถˆ๊ฐ€๋Šฅํ•จ

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

import requests url = "https://www.naver.com/" #GET ๋ฐฉ์‹ response = requests.get(url) print(response.text)
Python
๋ณต์‚ฌ
import requests url = "https://httpbin.org/post" data = {'key1': 'value1', 'key2': 'value2'} # POST ๋ฐฉ์‹ response = requests.post(url, data) print(response.text)
Python
๋ณต์‚ฌ
๊ตฌ๋ถ„
์ฃผ์š” ๊ธฐ๋Šฅ
์„ค๋ช…
request
requests.get(โ€˜์‚ฌ์ดํŠธ ์ฃผ์†Œโ€™)
HTTP GET ์š”์ฒญ
requests.post(โ€˜์‚ฌ์ดํŠธ ์ฃผ์†Œโ€™, data = {โ€˜keyโ€™ : โ€˜valueโ€™})
HTTP POST ์š”์ฒญ
response
response.status_code
์ƒํƒœ์ฝ”๋“œ (200: ์„ฑ๊ณต, 403: ๊ถŒํ•œ์—†์Œ, 404: ์ฐพ์„ ์ˆ˜ ์—†์Œ)
response.text
์„œ๋ฒ„์˜ ์‘๋‹ต ํ˜•ํƒœ๊ฐ€ html ๋ฌธ์„œ์ธ ๊ฒฝ์šฐ
response.content
์„œ๋ฒ„์˜ ์‘๋‹ต ํ˜•ํƒœ๊ฐ€ ๋ฐ”์ดํŠธ(์ด๋ฏธ์ง€ ๋“ฑ)์ธ ๊ฒฝ์šฐ
response.json()
์„œ๋ฒ„์˜ ์‘๋‹ต ํ˜•ํƒœ๊ฐ€ json์ธ ๊ฒฝ์šฐ ๋‚ด์žฅ ๋””์ฝ”๋”๋ฅผ ์‚ฌ์šฉ

์‹ค์Šต1 - ๊ตฌ๊ธ€ HTML ์ฝ์–ด์˜ค๊ธฐ

import requests url = 'http://www.google.com' r = requests.get(url) print(r.text) print(r.status_code)
Python
๋ณต์‚ฌ

์‹ค์Šต2 - ๊ตฌ๊ธ€ ์ด๋ฏธ์ง€ ์ฝ์–ด์˜ค๊ธฐ

import requests url = 'https://www.google.co.kr/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png' r = requests.get(url) print(r.status_code) #200
Python
๋ณต์‚ฌ
์ด๋ฏธ์ง€ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๊ธฐ
from PIL import Image from io import BytesIO Image.open(BytesIO(r.content))
Python
๋ณต์‚ฌ
์ด๋ฏธ์ง€ ์ €์žฅํ•˜๊ธฐ
import os # url์—์„œ image ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„('/'์ดํ›„ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰) ์ถ”์ถœ image_name = os.path.basename(url) # 'googlelogo_color_272x92dp.png' # ์ด๋ฏธ์ง€ ์ €์žฅ์„ ์œ„ํ•œ ํด๋” ์ƒ์„ฑ image_folder = f"{os.getcwd()}/image" if not os.path.isdir(folder): os.mkdir(folder) # ์ด๋ฏธ์ง€ ์ €์žฅ ๊ฒฝ๋กœ ์ง€์ •: image_folder/image_name image_path = os.path.join(image_folder, image_name) # ์ด๋ฏธ์ง€ ์ €์žฅ image = open(image_path, 'wb') image.write(r.content) image.close()
Python
๋ณต์‚ฌ

๊ณผ์ œ

โ€ข
ํŒŒ์ด์ฌ ํŽ˜์ด์ง€(https://www.python.org/)์— ์žˆ๋Š” ๋กœ๊ณ ๋ฅผ ์ฝ์–ด์™€์„œ ์ €์žฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

User Agent String

โ€ข
HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋””๋ฐ”์ด์Šค์™€ ๋ธŒ๋ผ์šฐ์ € ๋“ฑ ์‚ฌ์šฉ์ž ์†Œํ”„ํŠธ์›จ์–ด์˜ ์‹๋ณ„ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” request header์˜ ํ•œ ์ข…๋ฅ˜
โ€ข
๋ณดํ†ต HTTP ์š”์ฒญ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์š”์ฒญ์„ ๋ณด๋‚ธ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
โ€ข
ํฌ๋กค๋ง ํ•˜๋Š” ์‚ฌ์ดํŠธ์— ๋”ฐ๋ผ User-Agent ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์‘๋‹ต์ฝ”๋“œ๋ฅผ ์„ฑ๊ณต(200)์œผ๋กœ ์ „๋‹ฌํ•˜์ง€๋งŒ ๊ฐ’์ด ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ
โ€ข
์ด ๊ฒฝ์šฐ์—, headers ๋งค๊ฐœ๋ณ€์ˆ˜์— User-Agent ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•ด์•ผํ•จ
import requests url = '์‚ฌ์ดํŠธ ์ฃผ์†Œ' headers = {'User-Agent': 'ํด๋ผ์ด์–ธํŠธ ์ •๋ณด'} r = requests.get(url, headers=headers)
Python
๋ณต์‚ฌ

๋‚ด ๋ธŒ๋ผ์šฐ์ €์˜ User Agent ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•

User Agent String.com(http://www.useragentstring.com/)
โ€ข
์œ„์˜ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ ๋‚ด๊ฐ€ ์ž‘์—…ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ •๋ณด๋ฅผ ํ—ค๋” ์ •๋ณด์— ๋ณต์‚ฌํ•ด์„œ ๋„ฃ์–ด์คŒ