알면 유익한

파이썬으로 웹 데이터 다운로드하기: urllib.request 활용 방법

haijun93 2024. 6. 20. 21:27

 

파이썬에서 웹 데이터를 다루는 데 가장 널리 사용되는 라이브러리 중 하나가 urllib.request입니다. 이 라이브러리는 HTTP 요청을 보내고 웹 리소스를 다운로드하는 데 유용한 다양한 기능을 제공합니다. 이번 글에서는 urllib.request를 사용하여 간단한 웹 데이터 다운로드 방법을 소개하고자 합니다.

1. urlretrieve를 이용한 다운로드

urlretrieve 함수는 주어진 URL의 파일을 직접 지정된 경로에 다운로드합니다.

import urllib.request

url = "http://uta.pw/shodou/img/28/214.png"
savename = "test.png"

urllib.request.urlretrieve(url, savename)
print("이미지가 저장되었습니다.")

 

위 코드는 urlretrieve 함수를 사용하여 http://uta.pw/shodou/img/28/214.png URL에서 이미지를 다운로드하고 test.png 파일로 저장하는 예제입니다.

2. urlopen을 이용한 다운로드 및 파일 저장

urlopen 함수를 사용하여 URL을 열고, 이후 데이터를 읽어들여 파일에 저장하는 방법입니다.

 

import urllib.request

url = "http://uta.pw/shodou/img/28/214.png"
savename = "test.png"

mem = urllib.request.urlopen(url).read()

with open(savename, mode="wb") as f:
    f.write(mem)
    print("이미지가 저장되었습니다.")

 

이 코드는 urlopen을 이용하여 웹에서 데이터를 읽어들인 후, 바이너리 형태로 test.png 파일에 저장합니다.

3. urlopen을 이용한 데이터 읽기

urlopen 함수를 사용하여 웹 페이지에서 데이터를 읽어들이고, 이를 문자열로 디코딩하여 출력하는 방법입니다.

 

import urllib.request

url = "http://api.aoikujira.com/ip/ini"
res = urllib.request.urlopen(url)
data = res.read()

text = data.decode("utf-8")
print(text)

 

위 코드는 urlopen을 이용하여 http://api.aoikujira.com/ip/ini URL에서 데이터를 읽어들인 후, UTF-8 인코딩으로 디코딩하여 출력합니다.

결론

이 글에서는 urllib.request 모듈을 활용하여 파이썬에서 웹 데이터를 다운로드하는 세 가지 방법을 살펴보았습니다. 각 방법은 서로 다른 상황에 맞춰 유연하게 사용할 수 있으며, 웹 크롤링, API 호출, 파일 다운로드 등 다양한 웹 기반 작업에 유용하게 활용될 수 있습니다. 파이썬으로 웹 데이터를 처리하는 방법에 대한 추가적인 공부가 필요하다면, 공식 문서나 다양한 예제 코드들을 참고하는 것이 좋습니다.