使用Python实现网页中图片的批量下载和水印添加保存

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生内存数据库 Tair,内存型 2GB
简介: 使用Python实现网页中图片的批量下载和水印添加保存

数字时代,图片已经成为我们生活中的一部分。无论是社交媒体上的照片,还是网页中的图片元素,我们都希望能够方便地下载并进行个性化的处理。
假设你是一位设计师,你经常需要从网页上下载大量的图片素材,并为这些图片添加水印以保护你的作品。然而,手动下载和添加水印是一件繁琐的事情 ,这时就可以通过编写一个Python爬虫程序,自动化地完成这个任务,节省时间和精力。
我们的基本思路是通过发送HTTP请求获取网页内容,然后解析网页内容,提取出图片元素的URL。接下来,我们使用请求库下载这些图片,并使用Pillow库添加水印。最后,我们将处理后面的图片保存到本地。
在开始之前,我们需要准备以下工作:
1安装Python:确保您的计算机上已经安装了Python Spark语言的最新版本。
2安装所需的库:我们将使用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 = "www.16yun.cn"
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("https://www.58pic.com/")
    # 提取图片元素的URL
    image_urls = extract_image_urls(page_content)
    # 下载图片并添加水印
    for image_url in
相关文章
|
14天前
|
机器学习/深度学习 算法 TensorFlow
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。
|
11天前
|
机器学习/深度学习 算法 TensorFlow
|
1月前
|
数据挖掘 Shell 测试技术
怎么用Python解析HTML轻松搞定网页数据
**Python解析HTML摘要** 本文介绍了使用Python处理HTML的常见需求,如数据提取、网络爬虫和分析,并讨论了三种解析方法。正则表达式适用于简单匹配,但对复杂HTML不理想;BeautifulSoup提供简单API,适合多数情况;lxml结合XPath,适合处理大型复杂文档。示例展示了如何用这些方法提取链接。
|
3天前
|
Python
Python 下载 html 中的 图片
Python 下载 html 中的 图片
9 2
|
4天前
|
Python
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。 本文将介绍如何使用Python实现PowerPoint演示文稿到图片的转换。
|
6天前
|
Python
Python——批量将PDF文件转为图片
Python——批量将PDF文件转为图片
16 2
|
6天前
|
数据采集 数据挖掘 数据处理
Python爬虫开发:爬取简单的网页数据
本文详细介绍了如何使用Python爬取简单的网页数据,以掘金为例,展示了从发送HTTP请求、解析HTML文档到提取和保存数据的完整过程。通过这个示例,你可以掌握基本的网页爬取技巧,为后续的数据分析打下基础。希望本文对你有所帮助。
|
7天前
|
数据采集 数据挖掘 数据处理
Python爬虫开发:爬取简单的网页数据
在数据分析中,数据的获取是第一步。随着互联网的普及,网络爬虫成为获取数据的重要手段。本文将详细介绍如何使用Python爬取简单的网页数据。
|
10天前
|
Web App开发 数据采集 C#
Python怎么使用爬虫获取网页内容
本文详细介绍了网页的基本概念及其构成,包括HTML文件的结构与作用,并演示了如何手动下载网页及使用Python编程语言实现网页内容的自动化下载。