溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何通過Python爬蟲實(shí)現(xiàn)文件下載

發(fā)布時(shí)間:2021-08-26 10:22:34 來源:億速云 閱讀:115 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)如何通過Python爬蟲實(shí)現(xiàn)文件下載的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

1、怎樣在網(wǎng)上找資源:

就是百度圖片為例,當(dāng)你如下圖在百度圖片里搜索一個(gè)主題時(shí),會為你跳出一大堆相關(guān)的圖片。

還有如果你想學(xué)英語,找到一個(gè)網(wǎng)站有很多mp3的聽力資源,這些可能都是你想獲取的內(nèi)容。

現(xiàn)在是一個(gè)互聯(lián)網(wǎng)的時(shí)代,只要你去找,基本上能找到你想要的任何資源。

如何通過Python爬蟲實(shí)現(xiàn)文件下載

2、怎樣識別網(wǎng)頁中的資源:

以上面搜索到的百度圖片為例。找到了這么多的內(nèi)容,當(dāng)然你可以通過手動(dòng)一張張的去保存,但這樣做既費(fèi)力又費(fèi)事。你當(dāng)然更希望通過程序自動(dòng)去下載所找到的資源。要想代碼識別這些資源,就要告訴代碼這些資源有哪些特征,怎樣在網(wǎng)頁中找到它們。

打開瀏覽器的調(diào)試功能(不同瀏覽器可能有差別,不知道的百度一下吧)。找出網(wǎng)頁中你想要下載資源的路徑,如下圖所示。如果有許多類似資源需要下載,則要找到識別這些資源地址的規(guī)律,然后告訴代碼。

如何通過Python爬蟲實(shí)現(xiàn)文件下載

3、資源下載方法一:

代碼很簡單,直接上代碼:

from urllib.request import urlretrieve

urlretrieve("圖片URL", "./image.jpg")

直接通過urlretrieve函數(shù)就把URL對應(yīng)的圖片給下載到當(dāng)前文件夾(./)中了,并把圖片命名為image.jpg。

4、資源下載方法二:

還是直接看代碼:

import requests

resource = requests.get("圖片URL")

with open("./image.jpg", mode="wb") as fh:

  fh.write(resource.content)

此下載方法要安裝python的requests庫。從功能上來說與下載方法一是一樣的。python庫的安裝方法用pip就好。很簡單,這里都不啰嗦了。

5、資源下載方法三:

看代碼:

import requests

resource = requests.get("圖片URL", stream=True)

with open("./image.jpg", mode="wb") as fh:

  for chunk in resource.iter_content(chunk_size=100):

    fh.write(chunk)

此方法與下載方法二的不同之處在于在get方法調(diào)用時(shí)使用了參數(shù)【stream=True】。而在寫入的文件的時(shí)候是分塊寫入的。

什么意思呢:

前兩種方法是把一個(gè)文件全部下載到內(nèi)存后,再一起寫入到硬盤文件中。

方法三是下載一定的量(這里指的是100字節(jié))后,就寫入到硬盤文件中,直到全部寫完。

第三種方法的好處是,如果在下載大容量文件時(shí),不會造成內(nèi)存的過度使用。

6、資源下載說明一:

上述的代碼都是通過下載圖片資源為例子的,但所有其它資源,如文檔,電影等的下載方式是一樣的。關(guān)鍵是要正確的識別出網(wǎng)頁中資源所對應(yīng)的URL地址才能夠正確的下載(因?yàn)橛行┵Y源是用的相對路徑或加密后的路徑)。

7、資源下載說明二:

上面例子中的代碼都是下載單一資源的。如果要在同一網(wǎng)頁中下載多個(gè)資源的思路如下:

1. 找出要下載資源的URL,并形成一個(gè)資源集合;

2. 把下載函數(shù)中的資源URL與保存路徑參數(shù)化;

3. 遍歷資源集合,依靠循環(huán)調(diào)用下載函數(shù)來達(dá)到多個(gè)資源下載的目的。

感謝各位的閱讀!關(guān)于“如何通過Python爬蟲實(shí)現(xiàn)文件下載”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI