인스타그램 사진 다운로드 파이썬 스크립트 완벽 가이드
인스타그램을 사용하다 보면 마음에 드는 사진이나 게시물을 나중에 다시 보고 싶을 때가 있습니다. 그러나 인스타그램 자체적으로 사진을 저장하거나 다운로드하는 기능은 제한적입니다. 이번 포스팅에서는 파이썬을 이용하여 간단하고 효율적으로 인스타그램의 사진과 게시물을 다운로드하는 방법을 완벽히 정리해보겠습니다.
인스타그램 사진 다운로드 준비하기
먼저, 인스타그램 사진을 파이썬으로 다운로드하기 위해서는 유용한 오픈소스 라이브러리인 Instaloader를 사용할 것입니다. Instaloader는 공개 계정의 콘텐츠를 로그인 없이 쉽게 다운로드할 수 있으며, 로그인 후 비공개 계정의 콘텐츠도 다운로드할 수 있게 해주는 뛰어난 도구입니다.
Instaloader 설치 방법
Instaloader는 pip를 통해 쉽게 설치할 수 있습니다. 터미널이나 명령 프롬프트를 열어 다음 명령어를 입력합니다.
pip install instaloader
설치가 완료되었다면, 이제 파이썬 스크립트를 작성할 준비가 되었습니다.
인스타그램 사진 다운로드 스크립트 작성하기
아래는 Instaloader를 기반으로 제작된 인스타그램 사진 및 게시물 다운로드를 위한 완전한 파이썬 스크립트입니다.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import argparse
import instaloader
import sys
# Windows에서 인코딩 문제 해결
try:
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
except AttributeError:
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding="utf-8", errors="replace")
def download_profile(loader, username, output_dir):
profile = instaloader.Profile.from_username(loader.context, username)
target_dir = os.path.join(output_dir, username)
os.makedirs(target_dir, exist_ok=True)
print(f"[+] '{username}' 프로필에서 게시물 다운로드 시작")
for post in profile.get_posts():
print(f" → {post.shortcode}", end=" ")
loader.download_post(post, target=target_dir)
print("완료")
def download_post(loader, post_url, output_dir):
shortcode = post_url.rstrip("/").split("/")[-1]
post = instaloader.Post.from_shortcode(loader.context, shortcode)
target_dir = os.path.join(output_dir, shortcode)
os.makedirs(target_dir, exist_ok=True)
print(f"[+] 게시물 {shortcode} 다운로드 중")
loader.download_post(post, target=target_dir)
print("완료")
def main():
parser = argparse.ArgumentParser(description="인스타그램 사진 다운로드 스크립트")
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument("--target", help="다운로드할 사용자 계정명")
group.add_argument("--post-url", help="다운로드할 게시물 URL")
parser.add_argument("--login", action="store_true", help="비공개 계정 접근을 위한 로그인")
parser.add_argument("--username", help="인스타그램 아이디")
parser.add_argument("--password", help="인스타그램 비밀번호")
parser.add_argument("--output-dir", default="downloads", help="사진이 저장될 폴더")
args = parser.parse_args()
loader = instaloader.Instaloader(
download_comments=False,
save_metadata=False,
post_metadata_txt_pattern="",
dirname_pattern="{target}"
)
if args.login:
if not args.username or not args.password:
parser.error("로그인을 위해 username과 password를 입력하세요.")
print("[*] 로그인 시도 중...")
loader.login(args.username, args.password)
print("[+] 로그인 성공")
os.makedirs(args.output_dir, exist_ok=True)
os.chdir(args.output_dir)
if args.post_url:
download_post(loader, args.post_url, ".")
else:
download_profile(loader, args.target, ".")
if __name__ == "__main__":
main()
스크립트 사용 방법
작성한 스크립트를 저장한 후 아래의 방법으로 실행할 수 있습니다.
공개 계정 전체 사진 다운로드
공개된 프로필 계정의 사진을 다운로드할 때는 로그인 없이 사용 가능합니다.
python instagram_downloader.py --target 사용자계정명
특정 게시물 사진 다운로드
특정 게시물 하나만 다운로드하고 싶을 때는 게시물 URL을 사용합니다.
python instagram_downloader.py --post-url https://www.instagram.com/p/게시물코드/
비공개 계정 사진 다운로드
비공개 계정의 콘텐츠를 다운로드하기 위해서는 반드시 본인의 인스타그램 계정으로 로그인이 필요합니다.
python instagram_downloader.py --target 계정명 --login --username 본인계정아이디 --password 본인계정비밀번호
흔한 오류 해결법
파이썬 스크립트를 Windows 환경에서 실행하다 보면 UnicodeEncodeError와 같은 인코딩 문제가 자주 발생할 수 있습니다. 이를 방지하기 위해 위 스크립트에 이미 인코딩 처리가 포함되어 있습니다. 또한 Windows의 cmd나 PowerShell에서 아래 명령어를 입력하여 터미널의 인코딩을 UTF-8로 변경하는 것도 추천합니다.
chcp 65001
주의 사항
- 계정의 콘텐츠를 다운로드할 때는 반드시 저작권자의 허락을 받아야 합니다.
- Instaloader를 이용한 과도한 다운로드는 인스타그램에서 계정 차단이나 제한이 있을 수 있으므로 적절히 사용하세요.
결론
이 포스팅을 통해 파이썬과 Instaloader를 활용하여 인스타그램의 사진을 간단히 다운로드하는 방법을 알아보았습니다. 본인의 콘텐츠 백업이나 개인적인 용도로만 사용하며 타인의 콘텐츠를 다운로드할 때는 반드시 저작권과 이용 약관을 준수해야 합니다. Instaloader는 강력한 기능과 쉬운 사용법으로 여러분의 인스타그램 사용을 더욱 편리하게 만들어 줄 것입니다.
'IT' 카테고리의 다른 글
1가구 2주택 양도소득세 계산기 by 파이썬 (0) | 2025.04.26 |
---|---|
페이스북 탈퇴하는 방법: 계정 영구 삭제 (0) | 2025.02.22 |
윈도우 10 블루스크린 해결: IRQL_NOT_LESS_OR_EQUAL, SYSTEM_SERVICE_EXCEPTION, KERNEL_SECURITY_CHECK_FAILURE (0) | 2025.01.19 |
파이썬 섭씨 화씨 변환표 계산 프로그램 작성하기, 유래 (0) | 2025.01.11 |
볼보 인터넷 연결 문제 해결 가이드: LTE TCAM 모듈 재시작 방법 (0) | 2025.01.06 |
목차
댓글