GNU+linux/shell

curl , wget 으로 다이렉트 다운로드 해보자!

ensuta 2021. 11. 16. 10:26
728x90
반응형

cURL

cURL은 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다.

 

크로스 플랫폼을 지원하므로 윈도우, 리눅스,OS X, 안드로이드 등 거의 대부분의 운영체제에서 지원하는 소프트웨어이다.
curl의 최대 장점은 역시 수많은 프로토콜의 지원이다.
이 강력한 도구는 정말 넓은 영역에서 사용되는데 
curl를 사용할줄 안다면 불필요한 웹 서핑 없이 원하는 파일을 바로 내려받을 수 있다.
 

 

유용한 예제들이다.

여기를 참고했음

1. 응답을 파일에 쓰기
 $ curl http://jeonkkochbi.tistory.com/resource > foo.txt
그냥 옵션 없이 curl를 사용하면 표준출력으로 request 출력,
그러므로 예제처럼 리다이렉트해서 바로 파일에 쓸 수 있다.

 

-o : 파일이름 변경 가능
  $ curl -o foo.txt http://jeonkkochbi.tistory.com/foo.txt
 
-O: 파일이름을 그대로 가져와 내려받기
 $ curl -O http://jeonkkochbi.tistory.com/foo.txt

 

3. 여러 파일을 다운로드
  $ curl -O http://jeonkkochbi.tistory.com/foo[0-9].txt
  
  $ curl -O http://jeonkkochbi.tistory.com/foo-[a-z][0-9].txt
 foo0.txt 부터 foo9.txt 파일을 다운로드 받는 것도 가능하다.
[]는 여러 번 조합할 수 있고, foo-a0.txt 부터 foo-z9.txt 까지 파일을 내려받는다.

 

 $ curl -O http://jeonkkochbi.tistory.com/{foo,bar,baz}.txt
중괄호를 써서 리스트(list)자료형을 호출할 수도 있다. foo.txt, bar.txt, baz.txt 를 다운로드 받는다.

 

4. shell 의 for문 활용 (고급)
  $ files="foo bar baz"
  $ for name in files; do
       curl -O "http://jeonkkochbi.tistory.com/${name}.txt"
     done

wget ( 前 Geturl)

 웹 서버로부터 콘텐츠를 가져오는 컴퓨터 프로그램으로, GNU 프로젝트의 일부이다. 이 프로그램의 이름은 월드 와이드 웹 get에서 가져온 것이다. 

 

지원 프로토콜

  • HTTP
  • HTTPS
  • FTP

wget은 패키지 프로그램이므로 일부 배포판에서는 기본 탑재가 안 되어있다.

그러므로 설치를 한다.

 

Debian / Ubuntu

# apt install wget

 

Centos / Fedora

# yum install wget

Archlinux / Manjaro

# pacman -S wget

wget의 기본적인 사용법은 curl과 같다.

하지만 여러 기능이 추가된 리눅스용 프로그램인 것이다.

 

--limit-rate=RATE 옵션

# wget --limit-rate=80k https://jeonkkochbi.tistory.com/

다운로드 속도 제한

k = 킬로바이트

m = 메가바이트

g = 기가바이트

 

-b 옵션

백그라운드(Background) 다운로드

 

--user-agent=<Strings>

User Agent 우회기능

# wget --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://jeonkkochbi.tistory.com/

wget의 user agnet를 막아놓은 경우(매크로 방지) 이렇게 우회할 수 있다.

자동입력방지문자 기술(CAPTCHA)는 방어할 수 없으나 python 패키지 등을 활용하면 가능하다. (코딩의 영역이라 제외)

반응형