8-1. Downloading Data on the Command Line

가짜연구소 dsf-2기로 활동중이며, 데이터 엔지니어 8코스-1) Downloading Data on the Command Line 를 수강하고 그에 관련 내용을 적어보았다.

  • command Line을 통해 웹서버에서 데이터 파일을 다운로드하는 방법

🌱 출처 : Datacamp data enigneering track
모르는 부분이나 헷갈렸던 부분은 계속 추가될 수 있다!

Downloading Data on the Command Line
1. Downloading data using curl
2. Downloading data using Wget
3. Advanced downloading using Wget

1. Downloading data using curl

  • curl이란 무엇일까?
    • URL용 클라이언트의 약자
    • Uinx 명령어
    • 서버와 데이터를 주고 받기 위함.
    • HTTP 사이트 및 FTP 서버에서 데이터를 다운로드하는 데 자주 사용됨.
  • man curl을 사용하여 curl 설치 확인
  • curl [option flags][URL]

curl은 HTTP, HTTPS, FTP, SFTP 등 많은 수의 프로토콜 호출을 지원한다.
cutl --help 사용하여 전체 목록 확인 가능하다.

url에 저장된 단일 파일을 다운로드 해보기.

https://websitename.com/datafilename.txt

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

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

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

curl -o renameddatafilename.txt https://websitename.com/datafilename[001-100].txt
  • 옵션 -0을 사용하여 파일을 원래이름으로 저정함.

  • 옵션 -o을 사용하여 파일을 새로운 이름으로 저장함.

  • * 사용하여 파일들을 한번에 다운로드

  • Globbing Parser를 이용하여 모든 파일을 순차적으로 다운받아줌 [순서시작-순서마지막:간격]

때떄로 시간초과 문제가 발생할 수 있는데 그럴 경우에는 아래와 같은 옵션을 사용해줍니다.

  • -L 300오류 코드 발생시 HTTP URL을 리디렉션함.
  • -C 완료 전에 시간 초과되면 이전 파일 전송을 재개함


2. Downloading data using Wget

Wget이라는 데이터 다운로드를 위한 또 다른 명령줄 도구를 소개한다.

  • Wget이란 무엇일까?
    • Wget은 World Wide Web 및 get에서 이름을 가져옴.
    • Linux 시스템, 하지만 모든 운영체제에서 호환됨.
    • HTTP 사이트 및 FTP 서버에서 데이터를 다운로드하는 데 자주 사용됨.
    • curl와 비교하여 Wget은 다목적.
      단일파일, 전체 파일, 웹페이지를 다운가능함.
  • Which wget을 사용하여 wget 설치 확인

  • wget [option flags][URL]

man명령어로 wget 사용방법 확인 가능하다.
HTTP, HTTPS, FTP, SFTP 등 많은 수의 프로토콜 호출을 지원한다.
wget --help 사용하여 전체 목록 확인 가능하다.

  • -b: 백그라운드에서 다운로드 실행가능
  • -q: 출력을 끄고 디스크 공간을 최소화함.
  • -c: 이전에 중단된 다운로드를 완료하는데 유용함.
wget -bqc https://websitename.com/datafilename.txt


pid은 고유한 프로세스이며, 프로세스를 취소해야하는 경우 참조해야합니다.

# Preview the log file 
cat wget-log


3. Advanced downloading using Wget

지금까지는 다운로드하는 방법에 중점을 두었다면 현재 챕터에서는 활용하는 방법을 배웁니다.

데이터 담당자가 여러 파일 다운로드를 처리하는 일반적인 방법은 파일의 파일 위치를 찾고 해당 메타 파일을 wget과 같은 다운로드 프로그램에 전달한다.

이 경우에 다운로드하려는 url에 파일을 확인하기 위해
car url_list.txt 를 사용합니다.

이 파일이 실제로 저장되있는 것을 확인한 후에 Wget에 전달할 수 있습니다.

  • url_list.txt -i을 사용하여 Wget은 로컬 또는 외부 파일에서 url을 읽고 있음을 알수있음.
    wget -i url_list.txt

  • --limit-rate을 사용하여 대역폭 상한 설정 가능

제한 속도를 정수와 동일하게 설정하면 자동으로 초당 바이트로 변환됩니다.

예를 들어 wget -- 제한속도는 200k로 다운로드 속도를 보장한다면, url 목록에 저장된 파일을 다운로드 할대 초당 200k를 초과하지 않는다.

작은 파일을 다운로드 할 경우에는 대역폭을 적용해도 잘 작동하지 않는다. 파일 호스팅 서버에 과도한 부담을 주지 않으려면 다음을 수행하는 것이 더 유용하다.

  • --wait 사용하여 파일 다운로드 사이에 필수 대기 시간을 적용함.
    wget --wait={seconds} {file_location}

curl vs wget

  • curl 의 장점
    • 20개가 넘는 프로토콜에 다운로드, 업로드 사용가능
    • 모든 운영 체제에 wget에 비해 설치하기 쉬움
  • wget 의 장점
    • 여러 파일 다운로드를 정상적 처리 가능
    • 전체 파일 디렉토리에서 HTML에 이르기까지 거의 모든 것을 다운로드 가능함

좋은 웹페이지 즐겨찾기