wget下載整個網站的方法
linux下可以用wget下載整個網站,而且網站連結中包含utf-8編碼的中文也能正確處理。
簡要方法記錄如下:
wget --restrict-file-name=ascii -m -c -nv -np -k -E -p -R=exe,zip
引數釋義如下:
--restrict-file-name=ascii ,將檔名儲存為ASCII格式。這樣能避免utf-8檔名帶來的麻煩(注:1.12版才支援ascii引數值)
-m 整站下載,mirror的縮寫,是-N -r -l inf --no-remove-listing 這幾個引數的快捷方式,具體詳閱各自的說明
-c 續傳
-nv 不顯示詳細的下載詳情
-np don’t ascend to the parent directory.即下載的Web頁面不越過後面指定的 的範圍。當然,如果你指定的是 /aaa,則所有的web頁面都要在 /aaa下
-k 下載完成後,將頁面檔案中的連結轉換為本地連結,便於離線瀏覽和製作chm等
-E 儲存html/css檔案時,使用合適的檔案字尾。例如,在某些網站有些檔案是伺服器端動態生成的,雖然是css檔案,但字尾並不是css,-E選項可以調整之
-p -np對頁面檔案做了限制,如果不加-p,則html所需的媒體檔案也會受限於-np,-p則會下載html/css檔案所需的所有媒體檔案(圖片、音訊、影片等)
-R 拒絕下載的檔案字尾列表,逗號分隔
至於下載到的檔案的檔名變為了形如%A7這樣百分號加16進位制數字的形式,可以用個python程式來改變檔名:
————————————————————————————————————
import os, urllib, sys, getopt
class Renamer:
input_encoding = ""
output_encoding = ""
path = ""
is_url = False
def __init__(self, input, output, path, is_url):
self.input_encoding = input
self.output_encoding = output
self.path = path
self.is_url = is_url
def start(self):
self.rename_dir(self.path)
def rename(self, root, path):
try:
if self.is_url:
new = urllib.unquote(path).decode(self.input_encoding).encode(self.output_encoding)
else:
new = path.decode(self.input_encoding).encode(self.output_encoding)
os.rename(os.path.join(root, path), os.path.join(root, new))
except:
pass
def rename_dir(self, path):
for root, dirs, files in os.walk(path):
for f in files:
self.rename(root, f)
if dirs == []:
for f in files:
self.rename(root, f)
else:
for d in dirs:
self.rename_dir(os.path.join(root, d))
self.rename(root, d)
def usage():
print '''This program can change encode of files or directories.
Usage: rename.py [OPTION]...
Options:
-h, --help this document.
-i, --input-encoding=ENC set original encoding, default is UTF-8.
-o, --output-encoding=ENC set output encoding, default is GBK.
-p, --path=PATH choose the path which to process.
-u, --is-url whether as a URL
'''
def main(argv):
input_encoding = "utf-8"
output_encoding = "gbk"
path = ""
is_url = True
try:
opts, args = getopt.getopt(argv, "hi:o:p:u", ["help", "input-encoding=", "output-encoding=", "path=", "is-url"])
except getopt.GetoptError:
usage()
sys.exit(2)
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
sys.exit()
elif opt in ("-i", "--input-encoding"):
input_encoding = arg
elif opt in ("-o", "--output-encoding"):
output_encoding = arg
elif opt in ("-p", "--path"):
path = arg
elif opt in ("-u", "--is-url"):
is_url = True
rn = Renamer(input_encoding, output_encoding, path, is_url)
rn.start()
if __name__ == '__main__':
main(sys.argv[1:])
————————————————————————————————————
rename.py -i utf-8 -o gbk -p -u
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29867/viewspace-716088/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 方便的網路下載工具wget 可下載網站目錄下的所有檔案(可下載整個網站)wget網站
- ReactPHP 爬蟲實戰:下載整個網站的圖片ReactPHP爬蟲網站
- 幾個伴奏下載網站網站
- 使用wget映象網站wget網站
- wget遞迴下載wget遞迴
- 12個不錯的圖示下載網站網站
- 讓整個網站的行距變化網站
- 10個免費下載PHP指令碼的網站PHP指令碼網站
- 本網站的下載一個也下不來阿網站
- 如何用wget下載七牛wget
- PHP網站中整體防注入方法PHP網站
- 20個Mac軟體下載常用的經典網站Mac網站
- 推薦16個國外的原始碼下載網站原始碼網站
- 10個提供免費PHP指令碼下載的網站PHP指令碼網站
- 35 個免費的響應式網站模板下載網站
- 35個免費的響應式網站模板下載網站
- 10個PPT演示用圖片下載網站網站
- 軟體下載網站有哪些?你需要知道的破解軟體下載網站網站
- 推薦16個下載超酷指令碼的熱門網站指令碼網站
- 20 個免費的“網站構建中”的模板設計下載網站
- Linux基礎命令---wget下載工具Linuxwget
- PowerShell實現檔案下載(類wget)wget
- 網站圖片需要付費禁止下載?這個網站神器輕鬆搞定!網站
- Mac 軟體下載網站Mac網站
- asp 原始碼下載網站原始碼網站
- 全球BT下載網站排名網站
- 輸入法下載網站網站
- Apache配置多個網站的方法Apache網站
- 發現一個比較乾淨的下載軟體網站網站
- 下載網頁視訊的方法網頁
- wget下載提示:無法建立SSL連線wget
- 分享免費下載論文的網站網站
- 基於ThinkPHP的圖片下載網站PHP網站
- 常用Python模組下載網站Python網站
- go之國內下載網站Go網站
- wget 整站下載wget
- 推薦4個國外線上視訊下載網站,YouTube、vimeo、推特視訊網站!網站
- 自己寫的一個thinkphp網站 原始碼下載 常用工具PHP網站原始碼