![如何使用 wget 從託管網站下載?](https://rvso.com/image/23961/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20wget%20%E5%BE%9E%E8%A8%97%E7%AE%A1%E7%B6%B2%E7%AB%99%E4%B8%8B%E8%BC%89%EF%BC%9F.png)
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。
對於某些網站,您可能需要匯出網頁瀏覽器 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 &
我現在可以關閉電腦了:)