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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ReactPHP 爬蟲實戰:下載整個網站的圖片ReactPHP爬蟲網站
- wget遞迴下載wget遞迴
- 如何修改網站網頁字型,調整網站字型的方法網站網頁
- Linux基礎命令---wget下載工具Linuxwget
- 20個Mac軟體下載常用的經典網站Mac網站
- 軟體下載網站有哪些?你需要知道的破解軟體下載網站網站
- wget下載提示:無法建立SSL連線wget
- 網站圖片需要付費禁止下載?這個網站神器輕鬆搞定!網站
- Mac 軟體下載網站Mac網站
- 基於ThinkPHP的圖片下載網站PHP網站
- 分享免費下載論文的網站網站
- SingleFile:將整個網頁完整下載儲存到本地一個HTML檔案中網頁HTML
- 自己寫的一個thinkphp網站 原始碼下載 常用工具PHP網站原始碼
- go之國內下載網站Go網站
- 【知識分享】站長加固網站安全的幾個方法網站
- 一個下載網頁的程式網頁
- 搜尋下載jar包非常方便的網站JAR網站
- 解決網站限制IP的三個方法網站
- 全網最全-如何免費下載付費音樂歌曲,6個網站+8個APP網站APP
- Ubuntu IOS檔案映象下載網站UbuntuiOS網站
- 提高網站載入速度的五大方法網站
- 推薦4個國外線上視訊下載網站,YouTube、vimeo、推特視訊網站!網站
- 常見的弱口令 密碼字典 下載網站密碼網站
- 繼續教育-支援網站應用程式的下載網站
- You-Get:支援 80 多個網站的命令列多媒體下載器網站命令列
- 破解軟體下載網站有哪些?破解軟體分享網站合集網站
- 用 Laravel 做了一個視訊下載站Laravel
- landian下載站
- 提升WordPress網站載入速度的8個小技巧網站
- 網站方法網站
- 下載Android單個專案原始碼的方法Android原始碼
- 好用可免費下載的一些ppt素材的網站網站
- 能否劫持網站流量、網站流量劫持的方法網站
- e站官網版2024下載-e站(EhViewer)綠色版View
- 給整個網站設定黑白背景,用於需求:悼念日網站
- 視訊素材找不到?這4個網站,30萬+素材免費下載網站
- SiteSucker Pro Mac(Mac網站資料下載神器)Mac網站
- 幾個電影可直接下載的網站推薦網站
- 非常不錯的站長素材下載類網站原始碼 帶織夢模板網站原始碼