플랫폼&기술 리뷰/소프트웨어

인스타그램 크롤링, 사용자 프로필 이미지 다운로드 (3)

프로노력러 2024. 2. 18. 09:13
다른 사용자의 프로필 이미지 다운로드

 

 

파이썬 기반 가상환경에서의 크롤링으로, 인스타그램 내 타 사용자의 프로필 이미지를 다운로드할 수 있다.

 

이전에 포스팅했었던 인스타그램 게시물 내 이미지를 다운로드하는 과정과 유사하다.

 

소스코드

from selenium import webdriver
from selenium.webdriver.common.by import By
import requests

# 프로필 이미지를 다운로드 할 인스타그램 사용자 아이디 입력
id = input("id : ")
url = "https://www.instagram.com/" + id

# 크롬 웹드라이버 구동 및 기본설정
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get(url)

# 프로필 이미지 객체 찾기 및 이미지 소스 추출
image = driver.find_element(By.CLASS_NAME,"xpdipgo.x972fbf.xcfux6l.x1qhh985.xm0m39n.xk390pu.x5yr21d.xdj266r.x11i5rnm.xat24cr.x1mh8g0r.xl1xv1r.xexx8yu.x4uap5.x18d9i69.xkhd6sd.x11njtxf.xh8yej3")
image = image.get_attribute('src')

# 사용자 프로필 이미지 다운로드
response = requests.get(image)
# 사용자 아아디_profile.jpg 형식으로 이미지 이름 설정
filename = id + '_profile.jpg'
with open(filename, 'wb+') as f:
    f.write(response.content)

print("프로필 이미지 다운로드가 완료되었습니다.")

 

 

이전처럼 이미지 객체의 클래스이름으로 객체를 찾고 주소를 추출하는 과정은 매우 유사하다.

 

7라인에서 기존 url과 다르게 사용자의 ID값을 받아서, 문자열 더하기로 url을 완성했다.

 

21라인에서는 사용자의 ID에 따라 저장되는 이미지의 이름을 유동적으로 변경되도록 했다.

 

 

 

사용예제

 

픽사베이 인스타그램 계정

 

픽사베이의 인스타그램 계정을 대상으로 크롤링을 진행했다.

 

픽사베이의 ID인 'pixabay' 문자열을 클립보드에 복사한다.

 

컴파일 후 아이디 입력

 

소스코드를 컴파일 한 뒤, 'pixabay'를 입력하였다.

 

프로필 이미지가 정상적으로 다운로드되었음을 알려주는 문자열을 확인할 수 있다.

 

저장된 이미지

 

픽사베이 계정의 프로필 이미지를 정상적으로 다운로드하였다.

 

또한, 좌측상단의 이미지의 이름도 픽사베이의 ID값을 서두로 지어졌음을 확인할 수 있다.

 

 


 

궁금한 사항이나 질문, 피드백 등 의견을 댓글로 남겨주시면 답변드리겠습니다.

감사합니다.