在現代社會,圖片在我們的生活中扮演著越來越重要的角色。隨著互聯網技術的發展,我們可以隨時隨地的瀏覽和獲取到各種形式的圖片。但是,有時候我們需要將這些圖片下載到本地,這時候如果手動一個一個的保存,就會非常的麻煩和耗費時間。針對這種情況,我們可以藉助Python來編寫程序,實現批量下載圖片到本地的功能。
一、準備工作
在使用Python下載圖片之前,我們需要準備好Python環境。如果你還沒有安裝Python,請前往官網下載並安裝。
接著,我們需要安裝requests和BeautifulSoup這兩個Python庫。requests庫是一個網路庫,可以方便的向網站發起請求獲取數據。而BeautifulSoup庫是一個解析HTML和XML文檔的第三方庫,我們可以用它來提取網頁中我們需要的數據。
pip install requests
pip install beautifulsoup4
二、Python編寫程序
有了前面的準備工作之後,我們就可以開始編寫Python程序來下載圖片了。
1、獲取圖片鏈接
在下載圖片之前,我們需要先獲取到圖片的鏈接地址。一般來說,我們可以通過爬取網頁來獲取到需要下載的圖片鏈接和其他相關信息。
假設我們要從以下這個網頁中下載圖片:https://www.meituri.com/t/1506/
我們可以使用requests庫來向該網頁發送一個請求,並通過BeautifulSoup庫對返回的結果進行解析。
import requests
from bs4 import BeautifulSoup
url = 'https://www.meituri.com/t/1506/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
links = []
for img in soup.find_all('img'):
links.append(img.get('src'))
在上面的代碼中,我們通過requests庫向目標網頁發送了一個GET請求,並使用BeautifulSoup庫解析了返回的結果。在解析時,我們使用了soup.find_all(‘img’)方法,這個方法可以幫助我們查找網頁中所有的img標籤,並返回它們的屬性,也就是圖片的鏈接地址。我們將這些鏈接保存在了links列表中。
2、下載圖片
有了需要下載的圖片鏈接之後,我們就可以使用Python編寫程序來將圖片下載到本地。
import os
path = 'test/'
if not os.path.exists(path):
os.makedirs(path)
for link in links:
filename = path + link.split('/')[-1]
try:
response = requests.get(link, headers=headers)
with open(filename, 'wb') as f:
f.write(response.content)
except:
print(link, '下載失敗')
在上面的代碼中,我們首先創建了一個名為test的文件夾,用來保存下載的圖片。如果這個文件夾不存在,我們會使用os.makedirs()方法創建它。
然後,我們對每個圖片鏈接進行遍歷,先通過split方法獲取該鏈接的文件名,然後使用requests庫發送GET請求獲取圖片的二進位數據,並使用with open()方法將數據寫入到本地文件中。
由於網路狀況的不穩定,有些圖片可能會下載失敗。因此,我們使用了try/except語句來捕獲異常,並列印出下載失敗的鏈接地址。
三、總結
使用Python下載圖片到本地是非常方便和實用的。我們可以藉助Python的強大功能,批量下載海量的圖片,從而提高我們的工作效率。
原創文章,作者:SMFT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150062.html