알림
|

ChatGPT로 만든 키즈노트 앨범 전체 다운로드 파이썬 코드 사용하기

페이지 정보

작성자 아메리카농 162.♡.118.105
작성일 2024.03.29 09:16
380 조회
2 추천
글쓰기

본문

안녕하세요. 


제가 작성했던 강좌를 옮겨왔습니다.


기본적으로 파이썬, VS Code 설치, import 세팅은 가능하다는 전제에 사용 가능하십니다.


원본사이즈의 사진만을 출력하는 방식으로 기타 사이즈가 필요하다면 코드의 Key를 바꾸면 가능합니다.


ex) key = large, key = small



""" 

 준비작업

# json 파일로 만드는 법은 아래와 같습니다.

    1. 키즈노트 PC버전 접속 및 로그인

    2. 개발자도구 Open

    3. https://www.kidsnote.com/service/album URL 접근

    4. https://www.kidsnote.com/api/v1_2/children/#아이코드/albums/?tz=Asia/Seoul&page_size=12&center=#어린이집코드&cls=#반코드&child=#아이코드

        => 개발자도구에 위 형태의 URL이 보여지는데 해당 URL 중 page_size만 대략 한 300으로 조정하고 브라우저에 붙여넣기

        => 실제 홈페이지 앨범 맨 마지막 사진과 해당 JSON URL의 맨 마지막 사진이 일치한다면 전체 목록 불러오는데 성공한겁니다.

    5. 해당 URL의 내용을 VS Code 에서 list.json으로 소스코드와 동일 레벨에 저장합니다.

""" 


위와 같은 준비 작업을 거쳐서아래 파이썬 소스를 VS Code에 붙여넣고 수정 및 실행합니다.


파일명의 형태는 downloaded_file_넘버링.jpg 입니다.


변경하고 싶다면 # 다운로드 경로 설정 및 파일명 변경에서 해주면 됩니다.


import json

import os

import requests

#URL에서 뽑은 JSON을 저장한 파일명

file_name = "list.json"


# 파일 읽기

with open(file_name, "r") as file:

    # JSON 파싱

    data = json.load(file)


# "original" 사진의 키의 값을 추출하는 함수

def extract_original_value(json_data):

    original_values = []

    if isinstance(json_data, dict):

        for key, value in json_data.items():

            if key == "original":

                original_values.append(value)

            elif isinstance(value, (dict, list)):

                original_values.extend(extract_original_value(value))

    elif isinstance(json_data, list):

        for item in json_data:

            original_values.extend(extract_original_value(item))

    return original_values


# "original" 사진 키의 값을 추출

original_values = extract_original_value(data)


# 다운로드 폴더 생성

download_folder = "downloads"

os.makedirs(download_folder, exist_ok=True)


# 각 "original" 값에 대해 다운로드 진행

for index, original_value in enumerate(original_values):

    response = requests.get(original_value)

    

# 파일 확장자 추출

file_extension = original_value.split(".")[-1]

    

# 다운로드 경로 설정 및 파일명 변경

download_path = os.path.join(download_folder, f"downloaded_file_{index + 1}.{file_extension}")

    

# 파일 저장

with open(download_path, "wb") as file:

   file.write(response.content)

print(f"다운로드 완료: {download_path}")


그러면 다운로드 되는것을 볼 수 있습니다.


GPT 만세....


감사합니다.


댓글 0
글쓰기
전체 검색