图像自动化保存工具: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脚本示例,展示如何实现上述功能:
1import requests 2from bs4 import BeautifulSoup 3from PIL import Image 4from io import BytesIO 5 6# 代理服务器设置 7proxyHost = "www.16yun.cn" 8proxyPort = "5445" 9proxyUser = "16QMSOML" 10proxyPass = "280651" 11 12# 构建代理信息 13proxies = { 14 'http': f'http://{proxyHost}:{proxyPort}', 15 'https': f'https://{proxyHost}:{proxyPort}' 16} 17 18# 由于requests无法直接处理带有认证信息的代理, 19# 我们需要创建一个自定义的请求会话,并设置代理认证 20session = requests.Session() 21session.proxies = proxies 22auth = (proxyUser, proxyPass) 23session.auth = auth 24 25def search_images(query, save_dir, num_images=10): 26 # 百度图片搜索URL 27 search_url = f"https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gbk&word={query}" 28 headers = { 29 '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' 30 } 31 32 # 发送GET请求获取搜索结果 33 response = session.get(search_url, headers=headers) # 使用session发送请求 34 soup = BeautifulSoup(response.text, 'html.parser') 35 36 # 解析图像URL 37 image_tags = soup.find_all('img', {'class': 'img'}) 38 image_urls = [img['src'] for img in image_tags if 'src' in img.attrs][:num_images] 39 40 # 保存图像 41 for i, url in enumerate(image_urls): 42 try: 43 # 下载图像 44 image_response = session.get(url, headers=headers) # 使用session发送请求 45 image_response.raise_for_status() 46 47 # 使用BytesIO创建一个可读的字节流 48 image_stream = BytesIO(image_response.content) 49 50 # 使用Pillow打开图像 51 image = Image.open(image_stream) 52 53 # 保存图像到指定目录 54 image_filename = f"image_{i + 1}.jpg" 55 image_path = os.path.join(save_dir, image_filename) 56 image.save(image_path) 57 print(f"图像已保存到:{image_path}") 58 59 except requests.RequestException as e: 60 print(f"请求错误:{e}") 61 except IOError as e: 62 print(f"图像处理错误:{e}") 63 64if __name__ == "__main__": 65 # 搜索关键词 66 query = "风景" 67 # 保存目录 68 save_dir = "downloaded_images" 69 # 确保保存目录存在 70 if not os.path.exists(save_dir): 71 os.makedirs(save_dir) 72 # 搜索并下载图像 73 search_images(query, save_dir)

功能扩展 为了提高工具的实用性和用户体验,可以考虑以下功能扩展:

  1. 多关键词搜索:允许用户输入多个关键词,分别进行搜索和下载。
  2. 多页结果处理:支持翻页,获取更多搜索结果。
  3. 图像筛选:根据图像的分辨率、大小等属性进行筛选。
  4. 用户界面:开发图形用户界面,提高易用性。
  5. 定时任务:集成定时任务功能,定期自动执行搜索和下载。
点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

Java实战:使用HttpClient实现图片下载与本地保存

在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求。其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都显得尤为重要。无论是社交媒体平台、电商平台,还是个人项目,能够高效地下载并保存图片到本地,对于提升用户体验和优化数据处

OpenCV-Python图像转换为PyQt图像的变形及花屏无法正常显示问题研究

☞░ 前往老猿Python博文目录 ░一、引言在《PyQt转换显示PythonOpenCV图像实现图形化界面的视频播放》介绍了实现在OpenCV和PyQt之间转换并传递图像实现在PyQt上播放视频图像的功能。其中的关键函数如下:defcvImgtoQtImg(cvImg):定义opencv图像转PyQt图像的函数QtImgBufcv2.

Scapy 从入门到放弃

0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os

FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡

!(https://oscimg.oschina.net/oscnet/b27bc0d4a279e71e209ef9a9520ee00c145.jpg)图片逐渐成为互联网主要的内容构成,相应的图片处理需求也在高速成长,移动应用与用户生产内容(UGC)正在驱动数据中心图像处理的业务负载快速增加。本文深维科技联合创始人兼CEO樊平详细剖析了