由于我做了一個批處理檔案來更新NirSoft工具,我在使用wget時有一個奇怪的經歷。
首先我下載了一個帶有墊子鏈接的文本檔案:
wget http://www.nirsoft.net/pad/pad-links.txt --backups=20 --append-output=C:PathUpdateLOGNirsoft\%Timestamp%_NirSoft.log
之后,我使用fart-js來洗掉pad-links.txt檔案中我不需要的行。此外,我還使用該程式將下載鏈接改為https://www.nirsoft.net/utils,并將檔案擴展名改為.zip。
fart ".pad-links.txt" "http://www.nirsoft.net/pad" "http://www.nirsoft.net/utils" | tee --append C:PathUpdateLOGNirsoft\%Timestamp%_NirSoft.log
并且
fart ".pad-links.txt" ".xml" ".zip" | tee --append C:PathUpdateLOGNirsoft /%Timestamp%_NirSoft.log
之后,為了下載這些程式,我使用了:
wget --timestamping --input-file=C:PathUtilSuitNirLauncherDownloadpad-links.txt --append-output=C:PathUpdateLOGNirsoft /%Timestamp%_NirSoft.log
看了一下日志檔案,我發現不是所有的程式都存盤在這個位置。例如,WirelessKeyView被存盤在https://www.nirsoft.net/toolsdownload/wirelesskeyview.zip。
試圖用wget獲取這個檔案,導致下載了大小為4kb的損壞的檔案。使用cURL和aria2也是如此。當我用Mozilla或IDM下載時,我沒有問題得到檔案。
我也試過cliget,它在用Mozilla正常下載時產生的wget/aria2/curl行。
wget --header 'Host: www.nirsoft.net' --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0' --header 'Accept: text/html,application/xhtml xml,application/xml;q=0. 9,image/webp,*/*;q=0.8' --header 'Accept-Language: de,en-US;q=0.7,en;q=0.3' --referer 'https://www.nirsoft.net/utils/wirelesskeyview.html' --header 'Upgrade-Insecure-Requests: 1' --header 'Sec-Fetch-Dest: document' --header 'Sec-Fetch-Mode: navigate' --header 'Sec-Fetch-Site: same-origin' --header 'Sec-Fetch-User: ?1' --header 'DNT: 1' --header 'Sec-GPC: 1' 'https://www.nirsoft.net/toolsdownload/wirelesskeyview.zip' --output-document 'wirelesskeyview.zip'
我在谷歌上找到了這個powershell的參考資料,(同樣的錯誤),但無法在批處理中重現作業答案,(我對powershell腳本不熟悉)。
那么如何在批處理腳本中用wget/curl或aria2下載單個wirelesskey.zip檔案?
我發現的一個變通方法是直接從墊子面板下載,但我想要.zip-file,包括更新的.chm-file,以及64位版本(如果有)。
還有一點,在我的反病毒工具中,nirsoft網站被免除了掃描,所以這不是答案。
有什么解決辦法嗎?
uj5u.com熱心網友回復:
啊,這個很簡單。如果你看一下下載的實際頁面,它叫做 "403.html"。那么,讓我們打開它。首先映入你眼簾的是:
<title>錯誤403。在HTTP請求中缺少HTTP推薦人</title>。
因此,服務器想要一個 Referer 頭。當然,讓我們給它一個:
$ wget --referer foo <URL>
并且它像預期的那樣正確地下載了 zip 檔案。
現在,真的,服務器不應該回傳一個HTTP 200的回應和一個名為403的檔案。它真的應該發回一個HTTP 403回應。但是你能做什么呢?到處都有壞的服務器
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/307958.html
標籤:
上一篇:將給定的陣列型別解構為新的型別
