日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python wget_python wget下载文件

發(fā)布時(shí)間:2023/12/31 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python wget_python wget下载文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

import os

os.system('wget '+args)

wget常用參數(shù)

-c 斷點(diǎn)續(xù)傳

-t NUMBER 最大嘗試連接次數(shù)(--tries=NUMBER)

-T SECONDS 響應(yīng)超時(shí)秒數(shù) (--timeout=SECONDS)

-P PREFIX 將文件保存在目錄(--directory-prefix=PREFIX)

轉(zhuǎn)載:

wget是一個(gè)從網(wǎng)絡(luò)上自動(dòng)下載文件的自由工具。它支持HTTP,HTTPS和FTP協(xié)議,可以使用HTTP代理.

所謂的自動(dòng)下載是指,wget可以在用戶退出系統(tǒng)的之后在后臺(tái)執(zhí)行。這意味這你可以登錄系統(tǒng),啟動(dòng)一個(gè)wget下載任務(wù),然后退出系統(tǒng),wget將在后臺(tái)執(zhí)行直到任務(wù)完成,相對(duì)于其它大部分瀏覽器在下載大量數(shù)據(jù)時(shí)需要用戶一直的參與,這省去了極大的麻煩。

wget 可以跟蹤HTML頁(yè)面上的鏈接依次下載來創(chuàng)建遠(yuǎn)程服務(wù)器的本地版本,完全重建原始站點(diǎn)的目錄結(jié)構(gòu)。這又常被稱作"遞歸下載"。在遞歸下載的時(shí)候,wget 遵循Robot Exclusion標(biāo)準(zhǔn)(/robots.txt). wget可以在下載的同時(shí),將鏈接轉(zhuǎn)換成指向本地文件,以方便離線瀏覽。

wget 非常穩(wěn)定,它在帶寬很窄的情況下和不穩(wěn)定網(wǎng)絡(luò)中有很強(qiáng)的適應(yīng)性.如果是由于網(wǎng)絡(luò)的原因下載失敗,wget會(huì)不斷的嘗試,直到整個(gè)文件下載完畢。如果是服務(wù)器打斷下載過程,它會(huì)再次聯(lián)到服務(wù)器上從停止的地方繼續(xù)下載。這對(duì)從那些限定了鏈接時(shí)間的服務(wù)器上下載大文件非常有用。

wget的常見用法

wget雖然功能強(qiáng)大,但是使用起來還是比較簡(jiǎn)單的,

基本的語法是:wget [參數(shù)列表] "URL" 用""引起來可以避免因URL中有特殊字符造成的下載出錯(cuò)。

下面就結(jié)合具體的例子來說明一下wget的用法。

1、下載整個(gè)http或者ftp站點(diǎn)。

wget?http://place.your.url/here

這個(gè)命令可以將http://place.your.url/here?首頁(yè)下載下來。使用-x會(huì)強(qiáng)制建立服務(wù)器上一模一樣的目錄,如果使用-nd參數(shù),那么服務(wù)器上下載的所有內(nèi)容都會(huì)加到本地當(dāng)前目錄。

wget -r?http://place.your.url/here

這個(gè)命令會(huì)按照遞歸的方法,下載服務(wù)器上所有的目錄和文件,實(shí)質(zhì)就是下載整個(gè)網(wǎng)站。這個(gè)命令一定要小心使用,因?yàn)樵谙螺d的時(shí)候,被下載網(wǎng)站指向的所有地址同樣會(huì)被下載,因此,如果這個(gè)網(wǎng)站引用了其他網(wǎng)站,那么被引用的網(wǎng)站也會(huì)被下載下來!基于這個(gè)原因,這個(gè)參數(shù)不常用。可以用-l number參數(shù)來指定下載的層次。例如只下載兩層,那么使用-l 2。

要是您想制作鏡像站點(diǎn),那么可以使用-m參數(shù),例如:wget -m?http://place.your.url/here

這時(shí)wget會(huì)自動(dòng)判斷合適的參數(shù)來制作鏡像站點(diǎn)。此時(shí),wget會(huì)登錄到服務(wù)器上,讀入robots.txt并按robots.txt的規(guī)定來執(zhí)行。

2、斷點(diǎn)續(xù)傳。

當(dāng)文件特別大或者網(wǎng)絡(luò)特別慢的時(shí)候,往往一個(gè)文件還沒有下載完,連接就已經(jīng)被切斷,此時(shí)就需要斷點(diǎn)續(xù)傳。wget的斷點(diǎn)續(xù)傳是自動(dòng)的,只需要使用-c參數(shù),例如:

wget -c?http://the.url.of/incomplete/file

使用斷點(diǎn)續(xù)傳要求服務(wù)器支持?jǐn)帱c(diǎn)續(xù)傳。-t參數(shù)表示重試次數(shù),例如需要重試100次,那么就寫-t 100,如果設(shè)成-t 0,那么表示無窮次重試,直到連接成功。-T參數(shù)表示超時(shí)等待時(shí)間,例如-T 120,表示等待120秒連接不上就算超時(shí)。

3、批量下載。

如果有多個(gè)文件需要下載,那么可以生成一個(gè)文件,把每個(gè)文件的URL寫一行,例如生成文件download.txt,然后用命令:wget -i download.txt

這樣就會(huì)把download.txt里面列出的每個(gè)URL都下載下來。(如果列的是文件就下載文件,如果列的是網(wǎng)站,那么下載首頁(yè))

4、選擇性的下載。

可以指定讓wget只下載一類文件,或者不下載什么文件。例如:

wget -m --reject=gif?http://target.web.site/subdirectory

表示下載http://target.web.site/subdirectory,但是忽略gif文件。--accept=LIST 可以接受的文件類型,--reject=LIST拒絕接受的文件類型。

5、密碼和認(rèn)證。

wget只能處理利用用戶名/密碼方式限制訪問的網(wǎng)站,可以利用兩個(gè)參數(shù):

--http-user=USER設(shè)置HTTP用戶

--http-passwd=PASS設(shè)置HTTP密碼

對(duì)于需要證書做認(rèn)證的網(wǎng)站,就只能利用其他下載工具了,例如curl。

6、利用代理服務(wù)器進(jìn)行下載。

如果用戶的網(wǎng)絡(luò)需要經(jīng)過代理服務(wù)器,那么可以讓wget通過代理服務(wù)器進(jìn)行文件的下載。此時(shí)需要在當(dāng)前用戶的目錄下創(chuàng)建一個(gè).wgetrc文件。文件中可以設(shè)置代理服務(wù)器:

http-proxy = 111.111.111.111:8080

ftp-proxy = 111.111.111.111:8080

分別表示http的代理服務(wù)器和ftp的代理服務(wù)器。如果代理服務(wù)器需要密碼則使用:

--proxy-user=USER設(shè)置代理用戶

--proxy-passwd=PASS設(shè)置代理密碼

這兩個(gè)參數(shù)。

使用參數(shù)--proxy=on/off 使用或者關(guān)閉代理。

wget還有很多有用的功能,需要用戶去挖掘。

wget的使用格式

Usage: wget [OPTION]... [URL]...

* 用wget做站點(diǎn)鏡像:

wget -r -p -np -k?http://dsec.pku.edu.cn/~usr_name/

# 或者

wget -m?http://dsec.pku.edu.cn/~usr_name/

* 在不穩(wěn)定的網(wǎng)絡(luò)上下載一個(gè)部分下載的文件,以及在空閑時(shí)段下載

wget -t 0 -w 31 -c?http://dsec.pku.edu.cn/BBC.avi?-o down.log &

# 或者從filelist讀入要下載的文件列表

wget -t 0 -w 31 -c -B?ftp://dsec.pku.edu.cn/linuxsoft?-i filelist.txt -o down.log &

上面的代碼還可以用來在網(wǎng)絡(luò)比較空閑的時(shí)段進(jìn)行下載。我的用法是:在mozilla中將不方便當(dāng)時(shí)下載的URL鏈接拷貝到內(nèi)存中然后粘貼到文件filelist.txt中,在晚上要出去系統(tǒng)前執(zhí)行上面代碼的第二條。

* 使用代理下載

wget -Y on -p -k?https://sourceforge.net/projects/wvware/

代理可以在環(huán)境變量或wgetrc文件中設(shè)定

# 在環(huán)境變量中設(shè)定代理

export PROXY=http://211.90.168.94:8080/

# 在~/.wgetrc中設(shè)定代理

http_proxy =?http://proxy.yoyodyne.com:18023/

ftp_proxy =?http://proxy.yoyodyne.com:18023/

wget各種選項(xiàng)分類列表

* 啟動(dòng)

-V,? --version?????????? 顯示wget的版本后退出

-h,? --help????????????? 打印語法幫助

-b,? --background??????? 啟動(dòng)后轉(zhuǎn)入后臺(tái)執(zhí)行

-e,? --execute=COMMAND?? 執(zhí)行`.wgetrc'格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc

* 記錄和輸入文件

-o,? --output-file=FILE???? 把記錄寫到FILE文件中

-a,? --append-output=FILE?? 把記錄追加到FILE文件中

-d,? --debug??????????????? 打印調(diào)試輸出

-q,? --quiet??????????????? 安靜模式(沒有輸出)

-v,? --verbose????????????? 冗長(zhǎng)模式(這是缺省設(shè)置)

-nv, --non-verbose????????? 關(guān)掉冗長(zhǎng)模式,但不是安靜模式

-i,? --input-file=FILE????? 下載在FILE文件中出現(xiàn)的URLs

-F,? --force-html?????????? 把輸入文件當(dāng)作HTML格式文件對(duì)待

-B,? --base=URL???????????? 將URL作為在-F -i參數(shù)指定的文件中出現(xiàn)的相對(duì)鏈接的前綴

--sslcertfile=FILE???? 可選客戶端證書

--sslcertkey=KEYFILE?? 可選客戶端證書的KEYFILE

--egd-file=FILE??????? 指定EGD socket的文件名

* 下載

--bind-address=ADDRESS?? 指定本地使用地址(主機(jī)名或IP,當(dāng)本地有多個(gè)IP或名字時(shí)使用)

-t,? --tries=NUMBER?????????? 設(shè)定最大嘗試鏈接次數(shù)(0 表示無限制).

-O?? --output-document=FILE?? 把文檔寫到FILE文件中

-nc, --no-clobber???????????? 不要覆蓋存在的文件或使用.#前綴

-c,? --continue?????????????? 接著下載沒下載完的文件

--progress=TYPE????????? 設(shè)定進(jìn)程條標(biāo)記

-N,? --timestamping?????????? 不要重新下載文件除非比本地文件新

-S,? --server-response??????? 打印服務(wù)器的回應(yīng)

--spider???????????????? 不下載任何東西

-T,? --timeout=SECONDS??????? 設(shè)定響應(yīng)超時(shí)的秒數(shù)

-w,? --wait=SECONDS?????????? 兩次嘗試之間間隔SECONDS秒

--waitretry=SECONDS????? 在重新鏈接之間等待1...SECONDS秒

--random-wait??????????? 在下載之間等待0...2*WAIT秒

-Y,? --proxy=on/off?????????? 打開或關(guān)閉代理

-Q,? --quota=NUMBER?????????? 設(shè)置下載的容量限制

--limit-rate=RATE??????? 限定下載輸率

* 目錄

-nd? --no-directories??????????? 不創(chuàng)建目錄

-x,? --force-directories???????? 強(qiáng)制創(chuàng)建目錄

-nH, --no-host-directories?????? 不創(chuàng)建主機(jī)目錄

-P,? --directory-prefix=PREFIX?? 將文件保存到目錄 PREFIX/...

--cut-dirs=NUMBER?????????? 忽略 NUMBER層遠(yuǎn)程目錄

* HTTP 選項(xiàng)

--http-user=USER????? 設(shè)定HTTP用戶名為 USER.

--http-passwd=PASS??? 設(shè)定http密碼為 PASS.

-C,? --cache=on/off??????? 允許/不允許服務(wù)器端的數(shù)據(jù)緩存 (一般情況下允許).

-E,? --html-extension????? 將所有text/html文檔以.html擴(kuò)展名保存

--ignore-length?????? 忽略 `Content-Length'頭域

--header=STRING?????? 在headers中插入字符串 STRING

--proxy-user=USER???? 設(shè)定代理的用戶名為 USER

--proxy-passwd=PASS?? 設(shè)定代理的密碼為 PASS

--referer=URL???????? 在HTTP請(qǐng)求中包含 `Referer: URL'頭

-s,? --save-headers??????? 保存HTTP頭到文件

-U,? --user-agent=AGENT??? 設(shè)定代理的名稱為 AGENT而不是 Wget/VERSION.

--no-http-keep-alive? 關(guān)閉 HTTP活動(dòng)鏈接 (永遠(yuǎn)鏈接).

--cookies=off???????? 不使用 cookies.

--load-cookies=FILE?? 在開始會(huì)話前從文件 FILE中加載cookie

--save-cookies=FILE?? 在會(huì)話結(jié)束后將 cookies保存到 FILE文件中

* FTP 選項(xiàng)

-nr, --dont-remove-listing?? 不移走 `.listing'文件

-g,? --glob=on/off?????????? 打開或關(guān)閉文件名的 globbing機(jī)制

--passive-ftp?????????? 使用被動(dòng)傳輸模式 (缺省值).

--active-ftp??????????? 使用主動(dòng)傳輸模式

--retr-symlinks???????? 在遞歸的時(shí)候,將鏈接指向文件(而不是目錄)

* 遞歸下載

-r,? --recursive????????? 遞歸下載--慎用!

-l,? --level=NUMBER?????? 最大遞歸深度 (inf 或 0 代表無窮).

--delete-after?????? 在現(xiàn)在完畢后局部刪除文件

-k,? --convert-links????? 轉(zhuǎn)換非相對(duì)鏈接為相對(duì)鏈接

-K,? --backup-converted?? 在轉(zhuǎn)換文件X之前,將之備份為 X.orig

-m,? --mirror???????????? 等價(jià)于 -r -N -l inf -nr.

-p,? --page-requisites??? 下載顯示HTML文件的所有圖片

* 遞歸下載中的包含和不包含(accept/reject)

-A,? --accept=LIST??????????????? 分號(hào)分隔的被接受擴(kuò)展名的列表

-R,? --reject=LIST??????????????? 分號(hào)分隔的不被接受的擴(kuò)展名的列表

-D,? --domains=LIST?????????????? 分號(hào)分隔的被接受域的列表

--exclude-domains=LIST?????? 分號(hào)分隔的不被接受的域的列表

--follow-ftp???????????????? 跟蹤HTML文檔中的FTP鏈接

--follow-tags=LIST?????????? 分號(hào)分隔的被跟蹤的HTML標(biāo)簽的列表

-G,? --ignore-tags=LIST?????????? 分號(hào)分隔的被忽略的HTML標(biāo)簽的列表

-H,? --span-hosts???????????????? 當(dāng)遞歸時(shí)轉(zhuǎn)到外部主機(jī)

-L,? --relative?????????????????? 僅僅跟蹤相對(duì)鏈接

-I,? --include-directories=LIST?? 允許目錄的列表

-X,? --exclude-directories=LIST?? 不被包含目錄的列表

-np, --no-parent????????????????? 不要追溯到父目錄

問題

在遞歸下載的時(shí)候,遇到目錄中有中文的時(shí)候,wget創(chuàng)建的本地目錄名會(huì)用URL編碼規(guī)則處理。如"天網(wǎng)防火墻"會(huì)被存為"%CC%EC%CD%F8%B7%C0%BB%F0%C7%BD",這造成閱讀上的

總結(jié)

以上是生活随笔為你收集整理的python wget_python wget下载文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。