如何使用 wget 下载可以被 Firefox 的默认下载器下载的文件?

sam*_*sam 5 wget

我尝试使用 wget 下载它但失败了。

https://code.ros.org/trac/wg-ros-pkg/raw-attachment/ticket/5069/rein_cmakelists2.patch

  sam@sam:/media/Data/code/ros/recognition/rein$ wget https://code.ros.org/trac/wg-ros-pkg/raw-attachment/ticket/5069/rein_cmakelists2.patch
  --2012-10-04 16:29:30--  https://code.ros.org/trac/wg-ros-pkg/raw-attachment/ticket/5069/rein_cmakelists2.patch
  Resolving code.ros.org (code.ros.org)... 157.22.19.21
  Connecting to code.ros.org (code.ros.org)|157.22.19.21|:443... connected.
  HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
  Retrying.

  --2012-10-04 16:29:32--  (try: 2)  https://code.ros.org/trac/wg-ros-pkg/raw-attachment/ticket/5069/rein_cmakelists2.patch
  sam@sam:/media/Data/code/ros/recognition/rein$                                                                        
Run Code Online (Sandbox Code Playgroud)

但是我可以用firefox下载。

如何在wget中下载这种文件?

谢谢~

don*_*oey 4

某些网站或服务器会阻止wget(和类似工具)以仅允许从浏览器下载。您可以欺骗网站,让其认为您是一个真正的浏览器。谷歌上有很多例子。这是摘自Askapache的特别完整的一份。要找到替代品只需谷歌wget pretend browser

wget 
  --referer="http://www.google.com" 
  --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" 
  --header="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" 
  --header="Accept-Language: en-us,en;q=0.5" 
  --header="Accept-Encoding: gzip,deflate"
  --header="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" 
  --header="Keep-Alive: 300" 
  -dnv [THE URL; in your case: https://code.ros.org/trac/wg-ros-pkg/raw-attachment]/ticket/5069/rein_cmakelists2.patch
Run Code Online (Sandbox Code Playgroud)

这是一个命令,但我将其放在几行中以增加可读性。您可以将其设为别名以使其更易于使用。


tot*_*tti 1

这可能是由于该网站使用票证和 cookie 进行下载(还有其他一些方法)。因此,在使用时wget需要加载cookies文件以及其他选项,如用户代理等。

例如: "wget" --trust-server-names -c -O jre-7u21-linux-x64.rpm --directory-prefix=/home/totti/Downloads --referer= http://java.com/en/download/linux_manual.jsp \?locale=en --load-cookies=/tmp/flashgot.7gavixy1.default/cookies --header=Cookie:s_vi=[CS]v1\|28BA8A90050109CA-6000011540153427[CE]\;\ --user-agent=Mozilla/5.0\ (X11\;\ Ubuntu\;\ Linux\ i686\;\ rv:16.0)\ Gecko/20100101\ Firefox/16.0 http://sdlc-esd.sun.com/ESD6/JSCDL/jdk/7u21-b11/jre-7u21-linux-x64.rpm \?AuthParam=1366627766_80a413ae29c4b4d2e12ac7e334d61847\&GroupName=JSC\&FilePath=/ESD6/JSCDL/jdk/7u21-b11/jre-7u21-linux-x64.rpm\&File=jre-7u21-linux-x64.rpm\&BHost=javadl.sun.com

使用 firefox 扩展可以轻松完成此操作Flashgot。(请有人添加链接)