图像自动化保存工具:Python脚本开发指南

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 图像自动化保存工具:Python脚本开发指南

引言
在数字化时代,图像已成为信息传递的重要媒介。无论是社交媒体、新闻网站还是电子商务平台,图像的自动化处理和保存都是提升用户体验和工作效率的关键。本文将深入探讨如何使用Python脚本实现从百度图片等搜索引擎批量下载并保存图像文件的高级应用。
技术背景
百度图片是中国最大的图片搜索引擎之一,提供了海量的图像资源。自动化地从百度图片下载图像,不仅可以用于个人收藏,还可以用于数据分析、机器学习等领域。
技术选型
实现百度图片的自动化下载,我们主要使用以下技术栈:
● Python:一种易于学习和使用的高级编程语言。
● requests:用于发送HTTP请求的Python库。
● BeautifulSoup:用于解析HTML和XML文档的Python库。
● Pillow:Python Imaging Library的一个分支,用于图像处理。
● os 和 shutil:Python标准库中的模块,用于文件操作。
实现过程

  1. 获取图像URL
    首先,我们需要从百度图片搜索结果中提取图像URL。这通常涉及到发送HTTP请求和解析HTML响应。
  2. 下载图像
    获取到图像URL后,我们将使用requests库下载图像。
  3. 保存图像
    下载完成后,使用Pillow库处理图像并保存到本地文件系统。
  4. 异常处理
    在整个过程中,加入异常处理机制,确保程序的健壮性。
    代码实现
    以下是一个简单的Python脚本示例,展示如何实现上述功能:
    ```import os
    import requests
    from bs4 import BeautifulSoup
    from PIL import Image
    from io import BytesIO

代理服务器设置

proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"

构建代理信息

proxies = {
'http': f'http://{proxyHost}:{proxyPort}',
'https': f'https://{proxyHost}:{proxyPort}'
}

由于requests无法直接处理带有认证信息的代理,

我们需要创建一个自定义的请求会话,并设置代理认证

session = requests.Session()
session.proxies = proxies
auth = (proxyUser, proxyPass)
session.auth = auth

def search_images(query, save_dir, num_images=10):

# 百度图片搜索URL
search_url = f"https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gbk&word={query}"
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'
}

# 发送GET请求获取搜索结果
response = session.get(search_url, headers=headers)  # 使用session发送请求
soup = BeautifulSoup(response.text, 'html.parser')

# 解析图像URL
image_tags = soup.find_all('img', {'class': 'img'})
image_urls = [img['src'] for img in image_tags if 'src' in img.attrs][:num_images]

# 保存图像
for i, url in enumerate(image_urls):
    try:
        # 下载图像
        image_response = session.get(url, headers=headers)  # 使用session发送请求
        image_response.raise_for_status()

        # 使用BytesIO创建一个可读的字节流
        image_stream = BytesIO(image_response.content)

        # 使用Pillow打开图像
        image = Image.open(image_stream)

        # 保存图像到指定目录
        image_filename = f"image_{i + 1}.jpg"
        image_path = os.path.join(save_dir, image_filename)
        image.save(image_path)
        print(f"图像已保存到:{image_path}")

    except requests.RequestException as e:
        print(f"请求错误:{e}")
    except IOError as e:
        print(f"图像处理错误:{e}")

if name == "main":

# 搜索关键词
query = "风景"
# 保存目录
save_dir = "downloaded_images"
# 确保保存目录存在
if not os.path.exists(save_dir):
    os.makedirs(save_dir)
# 搜索并下载图像
search_images(query, save_dir)

```
功能扩展
为了提高工具的实用性和用户体验,可以考虑以下功能扩展:
多关键词搜索:允许用户输入多个关键词,分别进行搜索和下载。
多页结果处理:支持翻页,获取更多搜索结果。
图像筛选:根据图像的分辨率、大小等属性进行筛选。
用户界面:开发图形用户界面,提高易用性。
定时任务:集成定时任务功能,定期自动执行搜索和下载。

相关文章
|
3月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
4月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
236 92
|
3月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
417 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
2月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
428 2
|
2月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
3月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
320 3
|
3月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
202 6
|
2月前
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
|
2月前
|
人工智能 监控 Kubernetes
77_自动化脚本:Makefile与Airflow
在当今AI大模型时代,高效的工作流管理对于模型训练、推理和部署至关重要。随着大模型规模的不断增长和复杂度的提升,传统的手动脚本管理方式已无法满足需求。自动化脚本和工作流调度系统成为构建健壮、可重复、可扩展的LLM Pipeline的关键工具。其中,Makefile作为经典的自动化构建工具,与Airflow作为现代工作流调度平台的结合,为LLM开发团队提供了强大的工作流管理能力。
|
4月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。