Wildcards
wget遞歸文件沒有副檔名
我正在嘗試使用
wget
. 問題在於它:
- 為頁面設置使用者友好的名稱
http://domain/wiki/Section/Home, http://domain/wiki/Section/Not+Home http://domain/wiki/Section/Other+page
- 對於某些頁面,它使用查詢字元串:
http://domain/wiki/Section/Home?one=value&other=value
- 並且由於某種原因,可能備份某些文件的副檔名為*
.1
*(從 1 到 n 的數字),例如styles.css.1
,javascrip.js.2
我想進行遞歸下載並將其儲存在一個文件夾中,但避免使用帶有查詢的文件;
Home?query
– 在這種情況下Home
。為此,我嘗試--reject
了一種模式,但無法使其發揮作用。
.1,.2,... .n
如果我添加一長串數字,我可以避免擴展,但希望有更好的方法。這是
wget
:wget \ --page-requisites \ --no-parent \ --no-host-directories \ --no-directories \ --convert-links \ --load-cookies wget_cookies.txt --cookies=on --keep-session-cookies \ -P WikiFolders/pages/ \ -e robots=off \ -r \ --reject='1,2,3,4,5,6,7,8,9,*\\?*' \ --content-disposition \ --no-check-certificate \ http://domain/wiki/Section/
如果我以這種方式執行它,我確實會獲得該網站,但對於某些內容來說真的很慢。
注意:為了避免帶有我嘗試過的查詢的文件,
*\\?*
但這不起作用。下載後,我刪除了以下內容:
find WikiFolders/pages/ -iname "*\\?*" -delete
但同樣這真的很慢,我必須下載很多內容。
我考慮過首先排除
HTML
和下載圖像、CSS 和 js 以及其他 wget HTML,但由於文件沒有副檔名,這不起作用。
您可以使用
[]
符號來指定數字和字母的範圍。重複多次。*[0-9],*[0-9][0-9],*[0-9][0-9][0-9] |____||__________||_______________| | | | | | +---------- Reject ending with 000 to 999 | +------------------------- Reject ending with 00 to 99 +--------------------------------- Reject ending with 0 to 9
這也可以與
--accept
.對於查詢連結,無法將其過濾掉 - 但是,如果您指定
*\?*
文件將在下載後被刪除。因此,您將不得不使用頻寬和下載時間來忍受它,但之後您不必進行清理。所以,總結總結,也許是這樣的:
--reject='*.[0-9],*.[0-9][0-9],*\?*'
如果這還不夠,您將不得不查看其他工具,例如您的問題下可能的重複連結中提到的工具。