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 中找到)
这是一个屏幕截图,解释了您可以在哪里获得每个项目:
现在打开终端,并使用以下命令(替换必要的项目):
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 &
我现在可以关闭电脑了:)