크롤링
이라는 방법을 사용해 다운 받아보자!REST API
키입니다. # 파일 쓰기
data = "hello~!"
#(파일이름, 쓰기모드)
with open("test.txt", "w") as fp:
fp.write(data)
#파일 읽기
#(파일이름, 읽기모드)
with open("test.txt", "r") as fp:
print("=========[ 파일 읽기 결과 ]===========")
print(fp.read())
여기서 의문점을 가져봅시다. 우리는 해당 이미지가 있는 url을 치면 해당 이미지가 보이게 되는데 어떻게 이런 일이 가능할까요?
👉 브라우저 앱은 URL을 서버에게 요청
하고 서버에선 요청 받은 정보를 다시 클라이어트인 웹 브라우저에게 응답
해준 뒤, 전달받은 정보(html형태)를 해석
해 사용자에게 보여주는 역할을 합니다.
해당 여러 데이터(리소스)가 있는 url을 요청한 뒤, 우리가 필요한 이미지 파일만을 저장하기 위해서는?
👉 우리가 웹에 있는 이미지를 파일로 저장하기 위해서는 브라우저 앱처럼 서버에게 요청하고, 전달받은 정보 중 이미지 정보만을 저장하면 됩니다. (다른 정보들을 다 저장할 필요가 없습니다.)
# 외부 모듈 호출
import requests
# 이미지가 있는 url 주소
url = "https://t1.daumcdn.net/cfile/tistory/99F5FB475E0C84F214"
# 해당 url로 서버에게 요청
img_response = requests.get(url)
# 요청 성공 시
# http status code 200 - 성공 / 300 - 리다이렉트 / 400 - 실패(대부분 클라이언트 과실) / 500 - 서버 과실
if img_response.status_code == 200:
print("===========[ 이미지 저장 ]============")
with open("test.jpg", "wb") as fp:
fp.write(img_response.content)
어떻게 이런 일이 가능할까?
👉print(img_response.content)
를 해보게 되면 바이너리 형태로 jpeg로 표현했고 이를 이미지 파일로 저장하면 비로소 이미지가 보이게 되는 것입니다.
open API는 open source와는 달리 자신의 프로그램 소스를 공개하진 않습니다.
다만 open API를 제공하는 측에서 가지고 있는 자원에 대한 제어권을 open 한다는 것입니다.
📌출처: https://creator1022.tistory.com/66