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 ํ์ธํ๋ ๋ฐฉ๋ฒ
โข
์์ ์ฌ์ดํธ์ ์ ์ํ์ฌ ๋ด๊ฐ ์์
ํ๋ ๋ธ๋ผ์ฐ์ ์ ์ ๋ณด๋ฅผ ํค๋ ์ ๋ณด์ ๋ณต์ฌํด์ ๋ฃ์ด์ค