如何使用 wget 下载可以通过 Firefox 默认下载程序下载的文件?

如何使用 wget 下载可以通过 Firefox 默认下载程序下载的文件?

我尝试使用 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$                                                                        

但我可以用firefox下载。

如何使用 wget 下载此类文件?

谢谢〜

答案1

有些网站或服务器会阻止wget(以及类似的工具),以便只允许从浏览器下载。你可以欺骗网站,让它认为你是真正的浏览器。谷歌上有很多例子。这里有一个特别完整的例子,摘自阿萨卡帕切。要查找替代方案,只需谷歌一下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

这是一个命令,不过我把它分成几行以增加可读性。您可以将其设为别名以使其更易于使用。

答案2

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

例如: "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。(请有人添加链接)

相关内容