如何使用 wget 从托管站点下载?

如何使用 wget 从托管站点下载?

wget 是一个非常有用的工具,可以在互联网上快速下载内容,但是我可以使用它从托管站点(例如 FreakShare、IFile.it Depositfiles、Uploaded、Rapidshare)下载吗?如果是这样,我该怎么做?

答案1

此类网站试图让您很难不使用图形网络浏览器,因为如果您使用 wget,您将错过所有这些为带宽付费的广告。

有些网站不进行高级检查,很容易被欺骗:告诉 wget 假装这真的是 Mozilla那是来自下载网站

wget --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1' \
     --referer=http://downloadsite.example.com/download-page-url
     http://downloadsite.example.com/download-page-url/filename.ext`

大多数进行检查的网站都会允许您将其--user-agent=Mozilla设置--referer为您正在下载的文件的 URL。

对于某些网站,您可能需要导出 Web 浏览器 cookie 并传递--load-cookies给 wget;此时,使用 wget 开始比手动下载更加麻烦。最终的方法是使用浏览器自动化框架,该方法始终有效,但需要为每个站点进行一些编码或者瓦提尔

也可以看看使用curl 自动化网络请求?

答案2

对于 Zippyshare:

该方法建立在吉尔斯的回答。正如他所说,诀窍是让服务器认为请求是从浏览器发出的,要实现这一点,您需要做一些事情:

  • 下载链接(文件的实际链接)
  • 链接推荐人(带有下载按钮的网页)
  • Zippyshare 会话 ID(在 Cookie 中找到)

这是一个屏幕截图,解释了您可以在哪里获得每个项目:

从 Zippyshare 下载

现在打开终端,并使用以下命令(替换必要的项目):

wget <download_link> \
--referer='<referrer>' \
--cookies=off --header "Cookie: JSESSIONID=<session_id>" \
--user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'

例子:

wget http://www16.zippyshare.com/d/29887835/8895183/hello.txt \
--referer='http://www16.zippyshare.com/v/29887835/file.html' \
--cookies=off --header "Cookie: JSESSIONID=26458C0893BF69F88EB5743D74FE0F8C" \
--user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'

笔记:在命令中,其实referer不是referrer

答案3

我也想得到以上完美的答案,我使用以下技巧从 Turbobit 为我的儿子下载儿童电影:

您需要从 FIREBUG 的 cookie 选项卡中找到“compid”,而不是上面答案中的 SESSION_ID:

在此输入图像描述

之后,我的 Debian 嵌入式系统的命令就变得非常简单:

wget --referer='http://http://turbobit.net/download/free/yilmacr4e351' --cookies=off --header "Cookie: compid=c9255510c34624435292d8a0e7e405be66aa01f9%7ED01343F87AB53A2C38D957A564DA1D55" --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1' http://turbobit.net/download/redirect/B3EDACDA9B899937A149D5AAB6662327/yilmacr4e351/Ters.Yuz.2015.1080P.WEBDL.TR.EN.mkv &

我现在可以关闭电脑了:)

相关内容