您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何通過Python爬蟲實現文件下載的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1、怎樣在網上找資源:
就是百度圖片為例,當你如下圖在百度圖片里搜索一個主題時,會為你跳出一大堆相關的圖片。
還有如果你想學英語,找到一個網站有很多mp3的聽力資源,這些可能都是你想獲取的內容。
現在是一個互聯網的時代,只要你去找,基本上能找到你想要的任何資源。
2、怎樣識別網頁中的資源:
以上面搜索到的百度圖片為例。找到了這么多的內容,當然你可以通過手動一張張的去保存,但這樣做既費力又費事。你當然更希望通過程序自動去下載所找到的資源。要想代碼識別這些資源,就要告訴代碼這些資源有哪些特征,怎樣在網頁中找到它們。
打開瀏覽器的調試功能(不同瀏覽器可能有差別,不知道的百度一下吧)。找出網頁中你想要下載資源的路徑,如下圖所示。如果有許多類似資源需要下載,則要找到識別這些資源地址的規律,然后告訴代碼。
3、資源下載方法一:
代碼很簡單,直接上代碼:
from urllib.request import urlretrieve urlretrieve("圖片URL", "./image.jpg")
直接通過urlretrieve函數就把URL對應的圖片給下載到當前文件夾(./)中了,并把圖片命名為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方法調用時使用了參數【stream=True】。而在寫入的文件的時候是分塊寫入的。
什么意思呢:
前兩種方法是把一個文件全部下載到內存后,再一起寫入到硬盤文件中。
方法三是下載一定的量(這里指的是100字節)后,就寫入到硬盤文件中,直到全部寫完。
第三種方法的好處是,如果在下載大容量文件時,不會造成內存的過度使用。
6、資源下載說明一:
上述的代碼都是通過下載圖片資源為例子的,但所有其它資源,如文檔,電影等的下載方式是一樣的。關鍵是要正確的識別出網頁中資源所對應的URL地址才能夠正確的下載(因為有些資源是用的相對路徑或加密后的路徑)。
7、資源下載說明二:
上面例子中的代碼都是下載單一資源的。如果要在同一網頁中下載多個資源的思路如下:
1. 找出要下載資源的URL,并形成一個資源集合;
2. 把下載函數中的資源URL與保存路徑參數化;
3. 遍歷資源集合,依靠循環調用下載函數來達到多個資源下載的目的。
感謝各位的閱讀!關于“如何通過Python爬蟲實現文件下載”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。