2012-05-23 58 views
5

我想鏡像一個簡單的密碼保護的網絡門戶到一些數據,我想保持鏡像&最新。本質上這個網站只是一個目錄列表與數據組織到文件夾&我不太在意保持HTML文件&其他格式化元素。 但是有一些巨大的文件類型太大而無法下載,所以我想忽略這些。鏡像http網站,不包括某些文件

使用wget -m -R/--reject標誌幾乎做我想要的,除了所有文件被下載,然後如果它們匹配-R標誌,那麼它們將被刪除。

這裏就是我如何使用wget

wget --http-user userName --http-password password -R index.html,*tiff,*bam,*bai -m http://web.server.org/ 

將會產生這樣的輸出,確認被排除的文件(index.html的)(一)被下載,和(b)然後被刪除:

...
--2012-05-23 09:38:38-- http://web.server.org/folder/
重用現有的連接web.server.org:80。
發送HTTP請求,正在等待響應... 401需要授權
將現有連接重用到web.server.org:80。
HTTP請求發送的,在等待響應... 200 OK
長度:2677(2.6K)的text/html]
保存到:`web.server.org/folder/index.html」 100%[= ================================================== ================================================== =================>] 2,677 - .- K/s在0s

最後修改的標題丟失 - 時間戳關閉。
2012-05-23 09:38:39(328 MB/s) - `web.server.org/folder/index.html'已保存[2677/2677]

正在刪除web.server.org/folder /index.html,因爲它應該被拒絕。

...

有沒有辦法迫使wget的下載前對拒絕文件?
我應該考慮一個替代方案嗎?

此外,爲什麼我會收到每個下載文件的401 Authorization Required錯誤,儘管提供了用戶名&密碼。這就像wget在嘗試輸入用戶名/密碼之前每次嘗試連接未經身份驗證的連接。

感謝,馬克

+0

見關於從這個(重複)問題修改wget的解決方案:http://stackoverflow.com/questions/12704197/wget-reject-still-downloads-file – taranaki

回答

4

Pavuk(http://www.pavuk.org)看起來像一個有前途的替代方案,它允許您鏡像網站,不包括基於url模式的文件和文件擴展名......但pavuk 0.9.35 seg-faults /隨機在長期傳輸過程中死亡&似乎並沒有積極開發(這個版本是2008年11月建立的)。

僅供參考,這裏是我是如何使用它:
pavuk -mode mirror -force_reget -preserve_time -progress -Robots -auth_scheme 3 -auth_name x -auth_passwd x -dsfx 'html,bam,bai,tiff,jpg' -dont_leave_site -remove_old -cdir /path/to/root -subdir /path/to/root -skip_url_pattern ’*icons*’ -skip_url_pattern '*styles*' -skip_url_pattern '*images*' -skip_url_pattern '*bam*' -skip_url_pattern '*solidstats*' http://web.server.org/folder 2>&1 | tee pavuk-日期.log

到底,wget --exclude-directories的伎倆:

wget --mirror --continue --progress=dot:mega --no-parent \ 
--no-host-directories --cut-dirs=1 \ 
--http-user x --http-password x \ 
--exclude-directories='folder/*/folder_containing_large_data*' --reject "index.html*" \ 
--directory-prefix /path/to/local/mirror 
http://my.server.org/folder 

由於--exclude-directories通配符不跨越 '/',您需要非常明確地形成查詢以避免下載整個文件夾。

馬克

0

wget的-X directory_to_exclude [,other_directory_to_exclude] -r ftp://URL_ftp_server

 
SERVER 
    |-logs 
    |-etc 
    |-cache 
    |-public_html 
     |-images 
     |-videos (want to exclude) 
     |-files 
     |-audio (want to exclude) 

wget的-X /的public_html /視頻/的public_html /音頻FTP:SERVER /的public_html/*