앎을 경계하기

[가짜연구소3기] Data Engineer

[가짜연구소 3기] 데이터 엔지니어링 48 - Downloading Data on the Command Line

양갱맨 2021. 9. 25. 20:59

주제

curl과 wget을 사용해서 터미널 명령을 통해 데이터를 다운로드 할 수 있는 방법에 대해 배웠다.


curl 사용하기

  • Client for URLs의 줄임말
  • Unix 명령어 도구
  • 서버와 데이터를 송수신하기 위해 사용된다.
  • HTTP, FTP 서버에서 데이터를 다운로드하는 데 사용된다.

curl 문법

curl [option flags] [URL]

HTTP, HTTPS, FTP, SFTP를 지원한다.

curl -O https://websitename.com/datafilename.txt

만약 다른 이름으로 바꾸고 싶다면 -o 를 사용한다.

curl -o renameddatafilename.txt https://websitename.com/datafilename.txt

와일드 카드를 사용하여 여러 개의 파일을 한 번에 다운로드 할 수 있다.

curl -O https://websitename.com/datafilename*.txt

만약 파일이름이 순차적으로 명시되어 있는 경우, 범위를 표현해서 다운로드 받을 수 있다.

curl -O https://websitename.com/datafilename[001-100].txt

순차적인 파일을 일정 간격으로 다운받을 수 있다.

curl -O https://websitename.com/datafilename[001-110:10].txt

 

다운로드 중에 시간 만료가 되는 경우, 처리 방법에 대해서도 옵션을 사용할 수 있다.

-L : 300 error이 발생하는 경우, HTTP URL을 리디렉션한다.

-C : 완료 전에 시간 만료되는 경우, 이전 파일 전송을 재개한다.

Wget 사용하기

  • World Wide Web and get에서 얻은 이름
  • 모든 운영체제에서 호환된다.
  • HTTP, HTTPS, FTP 를 통해 파일 다운로드하는데 사용할 수 있다.
  • curl보다 좀 더 다목적으로 사용할 수 있다.
  • 여러 파일을 재귀적으로 다운로드할 수 있다.

Wget 문법

wget [option flags] [URL]

 

여러 옵션에 대한 설명

-b : 백그라운드에서 실행할 수 있다.

-q : 출력을 해제하여 디스크 공간을 절약함.

-c : 다른 프로그램에 의해 깨진 이전 다운로드를 완료함.

wget -bqc https://websitename.com/datafilename.txt

Wget 활용하기

cat을 사용해서 URL을 빠르게 인쇄하고 미리 볼 수 있다.

cat url_list.txt

url_list.txt를 열었을 때 내용이 있으려면 -i를 사용해서 저장할 수 있다.

-i는 다른 옵션과 같이 연속되게 쓰지않고 따로따로 써줘야한다.

큰 파일을 다운로드 받을 때 전체 대역폭을 소비하지 않도록 설정할 수 있다.

wget --limit-rate={rate}k {file_location}

작은 파일을 사용할 때는 위 설정이 효과가 없다.

그럴 땐 --wait 를 사용해서 강제 대기 시간을 설정한다.

wget --wait={seconds} {file_location}

curl vs wget

curl의 장점

  • 20개의 프로토콜을 통해 다운로드/업로드가 가능하다.
  • 설치가 쉽다.

wget의 장점

  • 여러 개의 파일을 다운로드하는 것을 다루기 위한 다양한 방법들이 있다.
  • 파일 디렉토리, HTML 페이지 등 모든 것을 다운로드 하는 것이 가능하다.