软件测试|教你使用Python下载图片

前言

我一直觉得Windows系统默认的桌面背景不好看,但是自己又没有好的资源可以进行替换,突然我一个朋友提醒了我,网络上的图片这么多,你甚至可以每天换很多个好看的背景,但是如果让我手动去设置的话,我觉得太麻烦了,我不如使用技术手段将图片下载到本地,并且使用技术手段实现自动替换,不过,路要一步一步走,先实现一下Python下载图片。本文就来介绍一下如何使用Python下载图片。

前期准备

  1. 环境准备

首先,我们需要安装Python的requests库和BeautifulSoup库,用于发送HTTP请求和解析HTML页面。安装命令如下:

pip install requests
pip install beautifulsoup4
  1. 分析网页结构

在爬取特定网站的图片之前,我们需要查看网页的源代码,了解网页结构和图片的位置。我们可以通过浏览器的开发者工具(F12)或者使用Python的requests库获取网页源代码。

爬取图片链接

  1. 发送HTTP请求并获取网页源代码
import requests

url = "http://www.example.com"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"
}

response = requests.get(url, headers=headers)
html = response.text
  1. 解析HTML页面
from bs4 import BeautifulSoup

soup = BeautifulSoup(html, "html.parser")
  1. 获取图片链接
image_links = []

# 根据网页结构和图片位置提取图片链接
for img_tag in soup.find_all("img"):
    image_links.append(img_tag["src"])

下载图片

  1. 创建保存图片的文件夹
import os

# 创建保存图片的文件夹
if not os.path.exists("images"):
    os.makedirs("images")
  1. 下载图片并保存到文件夹
for i, image_link in enumerate(image_links):
    response = requests.get(image_link, headers=headers)
    with open(f"images/image{i+1}.jpg", "wb") as file:
        file.write(response.content)

完整代码

import os
import requests
from bs4 import BeautifulSoup

url = "http://www.example.com"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"
}

# 发送HTTP请求并获取网页源代码
response = requests.get(url, headers=headers)
html = response.text

# 解析HTML页面
soup = BeautifulSoup(html, "html.parser")

# 获取图片链接
image_links = []
for img_tag in soup.find_all("img"):
    image_links.append(img_tag["src"])

# 创建保存图片的文件夹
if not os.path.exists("images"):
    os.makedirs("images")

# 下载图片并保存到文件夹
for i, image_link in enumerate(image_links):
    response = requests.get(image_link, headers=headers)
    with open(f"images/image{i+1}.jpg", "wb") as file:
        file.write(response.content)

总结

本文主要介绍了使用Python自动从网站上下载图片的方法,希望能够给大家一些帮助。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/320343.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编程高手必备:Python字典操作与示例全解析

编程高手必备:Python字典操作与示例全解析 引言Python字典基础字典操作技巧代码示例实际应用案例实际应用案例结语 引言 在编程世界中,高效地处理和组织数据是每位程序员必备的技能。Python,作为一种广受欢迎的编程语言,不仅因其…

mysql原理--undo日志1

1.事务回滚的需求 我们说过 事务 需要保证 原子性 ,也就是事务中的操作要么全部完成,要么什么也不做。但是偏偏有时候事务执行到一半会出现一些情况,比如: (1). 事务执行过程中可能遇到各种错误,比如服务器本身的错误&…

Jenkins-用户管理

用户管理 1 安装插件 2 选择安全策略为刚刚安装的插件 3 这个是安装插件以后会有的选项 4 增加一个角色 5 根据需要赋值角色的权限,并分配给用户

橘子学Mybatis07之Mybatis关于缓存的设计

很逆天的一件事是,我上一次发mybatis是在2022年10月15号,然后直到今天才开始总结下一篇Mybatis的东西。一年里面忙成那啥了,而且重心都投入在了Elasticsearch的学习上面,基本一年下来都在搞ES,并且考下了ECE认证&#…

【Docker】Dockerfile构建最小镜像

🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome 的Huihuis Code World ! !🥳🥳 前言 一.Dockerfile是什么 二.Dock…

lenovo联想笔记本电脑拯救者Legion Y7000 2019 PG0(81T0)原装出厂Windows10系统

链接:https://pan.baidu.com/s/1fn0aStc4sfAfgyOKtMiCCA?pwdas1l 提取码:as1l 联想拯救者原厂Win10系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:…

模型索引:QModelIndex

一、为什么要使用模型索引? 从名字可以看出,他是模型的索引,只要对模型实体(各种xxxModel的实体)施加这个索引,model就会返回数据集中对应的值,或者通过这个索引修改对应数据集中的值。 类比数…

VMware安装CentOS7虚拟机

VMware 安装 获取 VMware 安装包 下载地址:链接:https://pan.baidu.com/s/1ELR5NZa7rO6YVplZ1IUigw?pwdplz3 提取码:plz3 包括:当然,也可以自己去别的地方下载,WMware 版本都差不多,现在用的比…

数据结构学习 jz14剪绳子

关键词:数学 动态规划 快速幂 这道题其实是分为两题。 题目一: 这道题我是没有思路的,看了k神的答案才知道有数学的方法。 方法一: 数学:其实中间的推导我没看,我服了。 思路: 复杂度计算&…

matplotlib:热图、箱形图、小提琴图、堆叠面积图、雷达图、子图

简介:在数字化的世界里,从Web、HTTP到App,数据无处不在。但如何将这些复杂的数据转化为直观、易懂的信息?本文将介绍六种数据可视化方法,帮助你更好地理解和呈现数据。 热图 (Heatmap):热图能有效展示用户…

WorkPlus企业内部即时通信新选择,打造高效协作新格局

在企业内部,快速、高效的沟通与协作是推动工作进程的关键。而即时通信工具成为了企业内部沟通的重要工具。作为一款优秀的企业内部即时通信工具,WorkPlus通过其出色的性能和独特的功能,为企业打造高效协作的新格局。 为什么选择WorkPlus作为企…

详解Matlab深度学习进行波形分割

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

强化学习应用(三):基于Q-learning算法的无人车配送路径规划(提供Python代码)

一、Q-learning算法介绍 Q-learning是一种强化学习算法,用于解决基于环境的决策问题。它通过学习一个Q-table来指导智能体在不同状态下采取最优动作。下面是Q-learning算法的基本步骤: 1. 定义环境:确定问题的状态和动作空间,并…

逆变器之推挽谐振

首先把前级推挽电路分成几个模块:方波发生器、谐振LC、整流滤波以及负载。框图如下图所示: 分析前提:稳态 在推挽电路正常工作中,输入电压恒定、输出电流电压也恒定(电源处于稳定的工作状态中) 方波发生器…

Objective-C使用UISwitch控制UITextField显示明文或密文

1.xib中设计 2.关联控件 3.使用代码控制开关与TextField显示模式 4.开关控件UISwitch点击事件实现,点击时根据状态切换TextField显示模式 5.显示效果:

【Qt】QThread moveTothread-多线程的两种实现方法

一、如何理解多线程 二、实现多线程的两种方式(面向应用) 2.1 继承 QThread 的类 2.2 (推荐这种方式)函数 moveTothread() 三、多线程的释放问题(善后工作) 多线程的两种实现方法 一、如何理解多线程二、实现多线程的两种方式&…

文件操作(二)

͟͟͞͞🏀前言上一篇我们加们讲了什么是文件,为什么使用文件,以及流的概念。我们继续接上一篇来继续讲解我们的文件操作,这一篇将会详细的讲如何对文件进行读写。 目录 🚀一.文件的顺序读写 1.fgetc和fputc 2.fget…

oracle—IMU机制

正常的情况下,当事务需要回滚块的时候,是去undo表空间找 现在是在sharepool中分一个IMUbuffer,将所有的回滚信息写入。直接就可以从中取。减少了物理IO 同时这个过程也产生redo,直接就是图中红色的,不防止崩溃 优点 1…

Java21 + SpringBoot3集成WebSocket

文章目录 前言相关技术简介什么是WebSocketWebSocket的原理WebSocket与HTTP协议的关系WebSocket优点WebSocket应用场景 实现方式1. 添加maven依赖2. 添加WebSocket配置类,定义ServerEndpointExporter Bean3. 定义WebSocket Endpoint4. 前端创建WebSocket对象 总结 前…

Java 树形结构数据生成导出excel文件V2

** >> 相对于V1版本&#xff0c;优化了代码逻辑&#xff0c;合理使用递归计算树数据的坐标 << ** 1、效果 2、使用方法 import com.alibaba.fastjson.JSONArray; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workboo…