Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185359
  • 博文数量: 82
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 836
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-27 14:41
个人简介

宁为玉碎,不为瓦全

文章分类
文章存档

2024年(26)

2023年(28)

2022年(17)

2021年(10)

2019年(1)

我的朋友

分类: Python/Ruby

2023-10-12 16:52:45

数字时代,图片已经成为我们生活中的一部分。无论是社交媒体上的照片,还是网页中的图片元素,我们都希望能够方便地下载并进行个性化的处理。

假设你是一位设计师,你经常需要从网页上下载大量的图片素材,并为这些图片添加水印以保护你的作品。然而,手动下载和添加水印是一件繁琐的事情 ,这时就可以通过编写一个Python爬虫程序,自动化地完成这个任务,节省时间和精力。

我们的基本思路是通过发送HTTP请求获取网页内容,然后解析网页内容,提取出图片元素的URL。接下来,我们使用请求库下载这些图片,并使用Pillow库添加水印。{BANNED}最佳后,我们将处理后面的图片保存到本地。

在开始之前,我们需要准备以下工作:

  1. 安装Python:确保您的计算机上已经安装了Python Spark语言的{BANNED}最佳新版本。
  2. 安装所需的库:我们将使用requests库来发送HTTP请求,PIL库来处理图片。你可以使用以下命令来安装这些库:

点击(此处)折叠或打开

  1. pip install requests
  2. pip install pillow

接下来,我们可以定义一个函数来发送HTTP请求并获取页面内容:

点击(此处)折叠或打开

  1. def fetch_page(url):
  2.     proxies = {
  3.         "http": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}",
  4.         "https": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"
  5.     }
  6.     response = requests.get(url, proxies=proxies)
  7.     return response.content

然后,我们可以编写一个函数来解析页面内容并提取图片元素的URL:

点击(此处)折叠或打开

  1. from bs4 import BeautifulSoup

  2. def extract_image_urls(page_content):
  3.     soup = BeautifulSoup(page_content, "html.parser")
  4.     image_urls = []
  5.     for img in soup.find_all("img"):
  6.         image_urls.append(img["src"])
  7.     return image_urls

接下来,我们可以编写一个函数来下载图片并添加水印:

点击(此处)折叠或打开

  1. def download_and_add_watermark(image_url):
  2.     response = requests.get(image_url)
  3.     image = Image.open(BytesIO(response.content))
  4.     watermark = Image.new("RGBA", image.size, (0, 0, 0, 0))
  5.     draw = ImageDraw.Draw(watermark)
  6.     font = ImageFont.truetype("arial.ttf", 36)
  7.     draw.text((10, 10), "Watermark", font=font, fill=(255, 255, 255, 128))
  8.     watermarked_image = Image.alpha_composite(image.convert("RGBA"), watermark)
  9.     watermarked_image.save("watermarked_image.png")

实现完整代码

以下是完整的Python代码:

点击(此处)折叠或打开

  1. import requests
  2. from bs4 import BeautifulSoup
  3. from PIL import Image, ImageDraw, ImageFont
  4. from io import BytesIO

  5. proxyHost = ""
  6. proxyPort = "5445"
  7. proxyUser = "16QMSOML"
  8. proxyPass = "280651"

  9. def fetch_page(url):
  10.     proxies = {
  11.         "http": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}",
  12.         "https": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"
  13.     }
  14.     response = requests.get(url, proxies=proxies)
  15.     return response.content

  16. def extract_image_urls(page_content):
  17.     soup = BeautifulSoup(page_content, "html.parser")
  18.     image_urls = []
  19.     for img in soup.find_all("img"):
  20.         image_urls.append(img["src"])
  21.     return image_urls

  22. def download_and_add_watermark(image_url):
  23.     response = requests.get(image_url)
  24.     image = Image.open(BytesIO(response.content))
  25.     watermark = Image.new("RGBA", image.size, (0, 0, 0, 0))
  26.     draw = ImageDraw.Draw(watermark)
  27.     font = ImageFont.truetype("arial.ttf", 36)
  28.     draw.text((10, 10), "Watermark", font=font, fill=(255, 255, 255, 128))
  29.     watermarked_image = Image.alpha_composite(image.convert("RGBA"), watermark)
  30.     watermarked_image.save("watermarked_image.png")

  31. def main():
  32.     # 获取网页的页面内容
  33.     page_content = fetch_page("")

  34.     # 提取图片元素的URL
  35.     image_urls = extract_image_urls(page_content)

  36.     # 下载图片并添加水印
  37.     for image_url in



阅读(477) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~