使用Python實現網頁中圖片的批次下載和水印新增儲存
數字時代,圖片已經成為我們生活中的一部分。無論是社交媒體上的照片,還是網頁中的圖片元素,我們都希望能夠方便地下載並進行個性化的處理。
假設你是一位設計師,你經常需要從網頁上下載大量的圖片素材,併為這些圖片新增水印以保護你的作品。然而,手動下載和新增水印是一件繁瑣的事情 ,這時就可以透過編寫一個Python爬蟲程式,自動化地完成這個任務,節省時間和精力。
我們的基本思路是透過傳送HTTP請求獲取網頁內容,然後解析網頁內容,提取出圖片元素的URL。接下來,我們使用請求庫下載這些圖片,並使用Pillow庫新增水印。最後,我們將處理後面的圖片儲存到本地。
在開始之前,我們需要準備以下工作:
- 安裝Python:確保您的計算機上已經安裝了Python Spark語言的最新版本。
- 安裝所需的庫:我們將使用requests庫來傳送HTTP請求,PIL庫來處理圖片。你可以使用以下命令來安裝這些庫:
pip install requests pip install pillow
接下來,我們可以定義一個函式來傳送HTTP請求並獲取頁面內容:
def fetch_page(url): proxies = { "http": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}", "https": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}" } response = requests.get(url, proxies=proxies) return response.content
然後,我們可以編寫一個函式來解析頁面內容並提取圖片元素的URL:
from bs4 import BeautifulSoup def extract_image_urls(page_content): soup = BeautifulSoup(page_content, "html.parser") image_urls = [] for img in soup.find_all("img"): image_urls.append(img["src"]) return image_urls
接下來,我們可以編寫一個函式來下載圖片並新增水印:
def download_and_add_watermark(image_url): response = requests.get(image_url) image = Image.open(BytesIO(response.content)) watermark = Image.new("RGBA", image.size, (0, 0, 0, 0)) draw = ImageDraw.Draw(watermark) font = ImageFont.truetype("arial.ttf", 36) draw.text((10, 10), "Watermark", font=font, fill=(255, 255, 255, 128)) watermarked_image = Image.alpha_composite(image.convert("RGBA"), watermark) watermarked_image.save("watermarked_image.png")
實現完整程式碼
以下是完整的Python程式碼:
import requests from bs4 import BeautifulSoup from PIL import Image, ImageDraw, ImageFont from io import BytesIO proxyHost = " proxyPort = "5445" proxyUser = "16QMSOML" proxyPass = "280651" def fetch_page(url): proxies = { "http": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}", "https": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}" } response = requests.get(url, proxies=proxies) return response.content def extract_image_urls(page_content): soup = BeautifulSoup(page_content, "html.parser") image_urls = [] for img in soup.find_all("img"): image_urls.append(img["src"]) return image_urls def download_and_add_watermark(image_url): response = requests.get(image_url) image = Image.open(BytesIO(response.content)) watermark = Image.new("RGBA", image.size, (0, 0, 0, 0)) draw = ImageDraw.Draw(watermark) font = ImageFont.truetype("arial.ttf", 36) draw.text((10, 10), "Watermark", font=font, fill=(255, 255, 255, 128)) watermarked_image = Image.alpha_composite(image.convert("RGBA"), watermark) watermarked_image.save("watermarked_image.png") def main(): # 獲取網頁的頁面內容 page_content = fetch_page(") # 提取圖片元素的URL image_urls = extract_image_urls(page_content) # 下載圖片並新增水印 for image_url in
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31522063/viewspace-2988587/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 批次圖片新增水印
- Python中scrapy下載儲存圖片Python
- 前端js儲存頁面為圖片下載到本地前端JS
- 用canvas生成圖片為頁面新增水印Canvas
- 使用Python爬蟲實現自動下載圖片Python爬蟲
- js實現canvas儲存圖片為png格式並下載到本地JSCanvas
- 在vue專案中基於html2canvas實現網頁儲存為圖片VueHTMLCanvas網頁
- 使用httpclient下載 頁面、圖片HTTPclient
- 深入解析微信小程式頁面中實現的儲存圖片(附程式碼)微信小程式
- 用photoshop給圖片批次加水印
- 原生JS實現base64圖片下載-圖片儲存到本地JS
- Java 給 Word 文件每一頁新增不同圖片水印Java
- Acrobat怎麼批次儲存PDF小圖片?adobe Acrobat一鍵儲存pdf小圖片的技巧BAT
- 使用Python實現批次PPT轉圖片,格式支援PNG、JPG,轉後圖片後批次重新命名Python
- 自學python網路爬蟲,從小白快速成長,分別實現靜態網頁爬取,下載meiztu中圖片;動態網頁爬取,下載burberry官網所有當季新品圖片。Python爬蟲網頁
- iOS實現點選圖片放大&長按儲存圖片iOS
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- Python 下載圖片Python
- java+pgsql實現儲存圖片到資料庫,以及讀取資料庫儲存的圖片JavaSQL資料庫
- 小程式–儲存圖片到相簿功能實現
- 商品圖片批量加水印,一鍵新增文字、logo圖片水印方法分享Go
- 微信H5實現網頁長按儲存圖片及識別二維碼H5網頁
- Python 實用爬蟲-04-使用 BeautifulSoup 去水印下載 CSDN 部落格圖片Python爬蟲
- c#一個批次下載圖片的類C#
- 儲存圖片
- vue點選下載圖片的實現Vue
- GD 庫 PNG 透明底圖片新增文字及圖片水印
- 大量影片批次新增背景圖片的操作
- Python批次裁剪圖片Python
- 怎樣用python給pdf批次新增水印並加密Python加密
- 批次下載瀏覽器網頁中全部連結的方法瀏覽器網頁
- 有去除片尾並新增圖片水印的技巧嗎?
- 前端實現點選下載圖片前端
- 拍照黨福利駕到 華為雲微認證教你實現圖片壓縮和水印新增
- 使用JavaScript和Python實現Oracle資料庫的儲存過程?JavaScriptPythonOracle資料庫儲存過程
- Ueditor上傳圖片自動新增水印(通用圖片檔案)
- Python實現簡單網頁圖片抓取完整程式碼例項Python網頁
- 儲存論——經濟訂貨批次的R實現