wget을 사용하여 파일을 다운로드하는 방법과 페이지에서 다운로드를 기다리게 만드는 방법은 무엇입니까?

wget을 사용하여 파일을 다운로드하는 방법과 페이지에서 다운로드를 기다리게 만드는 방법은 무엇입니까?

wget을 사용하여 sourceforge에서 파일을 다운로드하려고 하는데 우리 모두 알고 있듯이 다운로드 버튼을 클릭하고 자동으로 다운로드될 때까지 기다려야 합니다. wget을 사용하여 이러한 유형의 파일을 어떻게 다운로드할 수 있나요?

나는 이것을 다운로드하려고합니다 :http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

하지만 URL 링크에서 wget을 실행하면 파일이 브라우저를 통해 자동으로 로드되므로 파일을 가져올 수 없습니다.

답변1

curl이 작업을 수행하는 대신 을 사용하는 것이 좋습니다 wget. 스위치를 사용 -L하고 -J리디렉션을 따를 수 있습니다 -O.

curl -O -J -L http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

스위치 정의

-O/--remote-name
  Write output to a local file named like the remote file we get. 
  (Only the file part of the remote  file  is  used, the path is cut off.)

-L/--location
  (HTTP/HTTPS)  If  the  server  reports that the requested page has moved 
  to a different location (indicated with a Location: header and a 3XX 
  response code), this option will make curl redo the request on the new 
  place.  If  used together  with  -i/--include  or -I/--head, headers from 
  all requested pages will be shown. When authentication is used, curl only 
  sends its credentials to the initial host. If a redirect takes curl to a 
  different host, it  won't be  able  to  intercept  the  user+password. 
  See also --location-trusted on how to change this. You can limit the
  amount of redirects to follow by using the --max-redirs option.

-J/--remote-header-name
  (HTTP) This option tells the -O/--remote-name option to  use  the  
  server-specified  Content-Disposition  filename instead of extracting a 
  filename from the URL.

보다컬 맨 페이지자세한 내용은.

답변2

"Content-Disposition" 헤더를 사용하여 다운로드한 파일의 이름을 설명하는 일부 파일 다운로드 CGI 프로그램에 유용한 옵션을 사용할 wget수 있습니다 .--content-disposition

예에서:

wget --user-agent=Mozilla --content-disposition -E -c http://example.com/

보다 복잡한 솔루션(예: 인증 필요)의 경우 쿠키 파일( --load-cookies file)을 사용하여 세션을 시뮬레이션하세요.

답변3

wget귀하와 sourceforge 사이에 어떤 버전의 OS와 에이전트가 존재하는지 잘 모르겠지만 wget"/download"를 제거하고 파일 확장자로 남겨 두었을 때 파일이 다운로드되었습니다.

전체 세션을 게시물이나 붙여넣기로 가득 채우고 싶지 않지만 전송이 시작되기 전에 302와 200 상태 코드가 표시됩니다. 시도하면 어떻게 되나요 wget?

Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found

[snipped for brevity]

HTTP request sent, awaiting response... 200 OK
Length: 13432789 (13M) [application/x-gzip]
Saving to: `download'

관련 정보