使用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
- Delphi儲存網頁中的圖片網頁
- 使用Java實現在SQLserver中實現圖片的儲存JavaSQLServer
- 前端js儲存頁面為圖片下載到本地前端JS
- 實現java讀取網頁內容並下載網頁中出現的圖片Java網頁
- 轉:Java新增水印(圖片水印,文字水印)Java
- 用canvas生成圖片為頁面新增水印Canvas
- 利用NODEJS+Puppeteer實現伺服器儲存網頁為圖片和PDFNodeJS伺服器網頁
- js實現canvas儲存圖片為png格式並下載到本地JSCanvas
- python抓取網頁中圖片並儲存到本地Python網頁
- js實現的將網頁儲存為圖片簡單解釋介紹JS網頁
- 在vue專案中基於html2canvas實現網頁儲存為圖片VueHTMLCanvas網頁
- iOS 圖片上新增水印iOS
- 深入解析微信小程式頁面中實現的儲存圖片(附程式碼)微信小程式
- 使用Python爬蟲實現自動下載圖片Python爬蟲
- 用photoshop給圖片批次加水印
- 使用httpclient下載 頁面、圖片HTTPclient
- Java 給 Word 文件每一頁新增不同圖片水印Java
- 原生JS實現base64圖片下載-圖片儲存到本地JS
- 基於html2canvas實現網頁儲存為圖片及圖片清晰度優化HTMLCanvas網頁優化
- Python 萌新 - 實現 Markdown 圖片下載器Python
- 自學python網路爬蟲,從小白快速成長,分別實現靜態網頁爬取,下載meiztu中圖片;動態網頁爬取,下載burberry官網所有當季新品圖片。Python爬蟲網頁
- 使用Python實現批次PPT轉圖片,格式支援PNG、JPG,轉後圖片後批次重新命名Python
- PHP實現水印效果(文字、圖片)PHP
- NSURLConnection類實現下載網路圖片
- iOS實現點選圖片放大&長按儲存圖片iOS
- python中使用urllib下載網站圖片Python網站
- SDWebImage類實現圖片的下載Web
- 用正規表示式自動下載網頁中的圖片網頁
- Acrobat怎麼批次儲存PDF小圖片?adobe Acrobat一鍵儲存pdf小圖片的技巧BAT
- 使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存JavaScript
- python 遍歷oss 實現批次下載Python
- Java圖片剪裁併儲存的程式碼實現Java
- 微信H5實現網頁長按儲存圖片及識別二維碼H5網頁
- iOS儲存網路圖片和讀取本地沙盒圖片iOS
- c#一個批次下載圖片的類C#
- 將網頁儲存為圖片形式程式碼例項網頁