파이썬 프로그래밍

파이썬 url 웹사이트 exe 이미지 동영상 파일 다운로드 (Requests)

코니코니 2022. 12. 10. 21:30
반응형

파이썬 url 웹사이트 exe 이미지 동영상 파일 다운로드 (Requests)


Python은 웹에서 파일을 다운로드하기 위해 urllib, Requests 등과 같은 다양한 모듈을 제공합니다. 오늘 글에서는 URL을 타겟으로 파일을 효율적으로 다운로드하기 위해 파이썬의 Requests 라이브러리를 사용할 것입니다.

Requests 라이브러리를 사용하여 URL을 사용하여 파일을 다운로드하는 방법에 대해서 설명합니다.

1. 라이브러리 가져오기

import requests

 

2. 링크 URL 입력하기

site_data = 'https://www.dropbox.com/s/gyjj8yahqybp6ih/LGMobileDriver_WHQL_Ver_4.8.0.exe?dl=1'
data = requests.get(site_data, timeout=30)

 

3. 원하는 위치에 원하는 이름으로 저장하기

with open(r'E:\다운로드 테스트\LGMobileDriver.exe', 'wb') as file:
    file.write(data.content)

 

전체 코드 예시

import requests

site_data = 'https://www.dropbox.com/s/gyjj8yahqybp6ih/LGMobileDriver_WHQL_Ver_4.8.0.exe?dl=1'
data = requests.get(site_data, timeout=30)
with open(r'E:\다운로드 테스트\LGMobileDriver.exe', 'wb') as file:
    file.write(data.content)

입력한 작업 디렉토리에 파일이 다운로드가 된 것을 볼 수 있습니다. 그러나 웹에서 이미지, 텍스트, 비디오 등과 같은 다른 종류의 파일을 다운로드해야 할 수도 있습니다.

 

이미지 다운로드 방법

먼저 크롬 개발자도구를 통해 이미지의 주소를 가져옵니다.

import requests

image_data = 'https://image.msscdn.net/images/goods_img/20190927/1168906/1168906_4_500.jpg?t=20201113172921'
data = requests.get(image_data, timeout=30)
with open(r'E:\다운로드 테스트\image.jpg', 'wb') as file:
    file.write(data.content)

방식은 동일합니다. 대신 확장자를 jpg, png 등의 이미지 확장자로 변경을 해줍니다.

일반 EXE 파일이 다운로드 되는 것과 크게 다르지 않습니다.

 

동영상 다운로드 방법

동영상은 타입이 video로 된 src 주소가 있는 경우 이미지와 마찬가지로 확장자만 변경하여 다운로드할 수 있습니다.

import requests

image_data = 'https://vsu.play.kakao.com/vod/v21b6i1Z1cZiPUFTTcFZ9Rj/mp4/mp4_1920_1080_4M_T1/clip.mp4?px-time' \
             '=1670677198&px-bps=10534702&px-bufahead=21&px-hash=dd3312e5b5f4def8554b42922f5a27cf '
data = requests.get(image_data, timeout=30)
with open(r'E:\다운로드 테스트\video.mp4', 'wb') as file:
    file.write(data.content)

src 주소를 살펴보면 타입이 mp4인 것을 볼 수 있습니다. 이런 경우 파일을 저장할 때 확장자를 mp4로 넣어주면 됩니다.

유튜브의 경우에는 pytube라는 모듈을 사용하면 훨씬 간결하게 동영상 다운로드가 가능합니다.

pip install pytube

라이브러리를 다운로드 합니다.

from pytube import YouTube

link = "https://www.youtube.com/watch?v=Kr391ygaCXY"
yt = YouTube(link)
yt.streams.first().download(r'E:\다운로드 테스트')

유튜브는 Requests 모듈로 영상을 다운로드하는 방식보다 자체 라이브러리를 사용하는 편이 좋겠네요.

반응형