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

小白学大数据
• 阅读 345

引言 在数字化时代,图像已成为信息传递的重要媒介。无论是社交媒体、新闻网站还是电子商务平台,图像的自动化处理和保存都是提升用户体验和工作效率的关键。本文将深入探讨如何使用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 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)

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

  1. 多关键词搜索:允许用户输入多个关键词,分别进行搜索和下载。
  2. 多页结果处理:支持翻页,获取更多搜索结果。
  3. 图像筛选:根据图像的分辨率、大小等属性进行筛选。
  4. 用户界面:开发图形用户界面,提高易用性。
  5. 定时任务:集成定时任务功能,定期自动执行搜索和下载。
点赞
收藏
评论区
推荐文章
Karen110 Karen110
3年前
OpenCV-Python图像转换为PyQt图像的变形及花屏无法正常显示问题研究
☞░ 前往老猿Python博文目录 ░一、引言在《PyQt转换显示PythonOpenCV图像实现图形化界面的视频播放》介绍了实现在OpenCV和PyQt之间转换并传递图像实现在PyQt上播放视频图像的功能。其中的关键函数如下:defcvImgtoQtImg(cvImg):定义opencv图像转PyQt图像的函数QtImgBufcv2.
Stella981 Stella981
3年前
Scapy 从入门到放弃
0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os
Stella981 Stella981
3年前
Python 和 JS 有什么相似?
Python是一门运用很广泛的语言,自动化脚本、爬虫,甚至在深度学习领域也都有Python的身影。作为一名前端开发者,也了解ES6中的很多特性借鉴自Python(比如默认参数、解构赋值、Decorator等),同时本文会对Python的一些用法与JS进行类比。不管是提升自己的知识广度,还是更好地迎接AI时代,Python都是一门值
Wesley13 Wesley13
3年前
FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡
!(https://oscimg.oschina.net/oscnet/b27bc0d4a279e71e209ef9a9520ee00c145.jpg)图片逐渐成为互联网主要的内容构成,相应的图片处理需求也在高速成长,移动应用与用户生产内容(UGC)正在驱动数据中心图像处理的业务负载快速增加。本文深维科技联合创始人兼CEO樊平详细剖析了
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
小白学大数据 小白学大数据
4个月前
使用 XPath 定位 HTML 中的 img 标签
引言随着互联网内容的日益丰富,网页数据的自动化处理变得愈发重要。图片作为网页中的重要组成部分,其获取和处理在许多应用场景中都显得至关重要。例如,在社交媒体分析、内容聚合平台、数据抓取工具等领域,图片的自动下载和处理是必不可少的。本文将详细介绍如何在C应用程
铁扇公主 铁扇公主
1年前
扒站工具推荐: SiteSucker pro激活中文最新版
SiteSuckerPro是一款适用于Mac的强大网站下载工具,它可以帮助用户快速方便地将整个网站保存到本地。以下是该软件的一些主要特点和功能:全面的网站下载。SiteSuckerPro支持下载整个网站,包括HTML页面、图像、视频、音频、样式表、脚本等,
小白学大数据 小白学大数据
10个月前
PuppeteerSharp库在C#中的应用案例
引言PuppeteerSharp是一个针对GoogleChrome浏览器的高级API库,它允许我们使用C来控制Chrome浏览器的,比如模拟用户行为操作、爬取网页内容等。本文将介绍如何使用PuppeteerSharp库在C中实现下载千图网图片并保存为PDF
马尚 马尚
7个月前
实战验证码识别:Python与OpenCV
验证码是网络应用中常见的安全工具,用于区分人类用户和机器人。在许多情况下,我们需要自动化程序来处理验证码以完成特定任务,例如注册、登录或数据采集。本文将介绍如何使用Python和OpenCV库实现验证码识别的实战项目。项目概述我们将创建一个Python脚本
马尚 马尚
7个月前
验证码识别实战
验证码是网站常用的一种安全验证手段,但是对于自动化程序来说,验证码可能是个难题。本文将介绍如何使用Python和一些常用的库来识别验证码图像。步骤1:预处理图像首先,我们需要对验证码图像进行预处理,以便更好地提取图像中的文本信息。预处理包括灰度化和二值化。
小白学大数据
小白学大数据
Lv1
男 · 亿牛云 · python技术
宁为代码类弯腰,不为bug点提交!
文章
88
粉丝
5
获赞
18