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

news2025/1/24 11:32:19

前言

我一直觉得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.coloradmin.cn/o/1383664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Consider defining a bean of type ‘XXXX‘ in your configuration.

今天学习尚硅谷的SpringCloud时,发现支付模块无法启动,控制台输出下面的错误: 看起来可能是dao层没有被注入。 然后根据我已有的知识,我检查了注解Mapper Mapper public interface PaymentDao {public int create(Payment payment);public…

Nacos下载与安装【Linux】

🥚今日鸡汤🥚 我不是天生的王者,但我骨子里流动着不让我低头的血液。 ——《海贼王》 目录 🌭1.官网下载 🍿2.根据需求下载Linux版本 🥓3.上传到Linux 🧂4.解压Nacos 🧈 5.…

C++力扣题目701--二叉搜索树中的插入操作

给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。 注意,可能存在多种有效的插入方式&a…

温和去油去黑头,只需敷上一刻钟的泥膜就够了

冬季天气干燥,很多朋友脸部更容易出油,连带着黑头也变多了。这是因为干燥的环境会刺激皮脂腺分泌,导致皮肤油脂分泌过多,容易堵塞毛孔形成黑头。因此,在冬季特别需要注意控油去黑头的工作。 控油去黑头需要清洁毛孔&am…

Sentinel微服务保护

文章目录 Sentinel微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.解决方案1.1.3.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链路2.1.快速入门2.2.流控模式2.2.1.…

docker应用:vocechat

简介:VoceChat是一款超轻量级的Rust聊天应用程序、API和SDK,优先考虑私人托管。使用VoceChat建立您自己的聊天功能!作为一款非常好用的通讯应用程序,它可以让你与朋友、家人和同事进行即时消息聊天,支持图片视频的分享…

Python相对导入和绝对导入

目录结构: 在 en_de_model_CDDD.py 文件有两种导入方式可以导入utils.py,分别是 相对导入: from ...public_utils.utils import canonicalize_smiles 绝对导入: from public_utils.utils import canonicalize_smiles 这里推荐使…

Fluent 动网格应用:2.5D 网格重构

1 概述 2.5D 网格重构是一种快速网格重构方法,主要应用于涡旋压缩机等存在复杂平面运动且无法简化为二维计算的问题。 涡旋压缩机工作原理(视频源:维基百科) 适用于 2.5D 动网格的问题特点: 计算域几何形状为柱体类形…

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

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

算法训练营Day43(背包问题)

1049. 最后一块石头的重量 II 1049. 最后一块石头的重量 II - 力扣(LeetCode) class Solution {public int lastStoneWeightII(int[] stones) {int sum 0;for(int num:stones){sumnum;}int target sum/2;//1 dp数组:背包容量为j&#xf…

MATLAB Deep learning

文章目录 Chapter 1: Machine Learning存在的问题过拟合Overfitting解决过拟合 regularization and validationregularization 正则化validation 验证 机器学习的类型有监督学习分类Classification回归Regression 无监督学习聚类 强化学习 Chapter 2: Neural Network神经网络的…

MySQL之多表连接查询、AS别名、扩展内容(information_schema的基本应用)

文章目录 前言一、引入多表连接查询二、多表连接查询案例1.准备对应的库表2.案例 三、AS别名用法示例 四、扩展内容1、information_schema的基本应用2、创建视图示例3、information_schema.tables视图的应用3.1、示例 五、show命令总结总结 前言 第三章内容主要描述了mysql使用…

力扣-盛最多水的容器

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜…

HTML如何设置背景图片?有几种设置背景图片的办法?

我们在编辑网页时&#xff0c;如果觉得网页过于单调&#xff0c;这时便可以加上一张自己喜欢的背景图。这篇文章中&#xff0c;W3Cschool 小编给大家介绍下 HTML 中如何设置背景图片&#xff0c;分别有哪几种设置背景图片的方法。 方法一、HTML中设置背景图片 HTML中的<bo…

vue.js-3

#前后端交互

CSS3中多列布局详解

多列布局 概念&#xff1a;在CSS3之前&#xff0c;想要设计类似报纸那样的多列布局&#xff0c;有两种方式可以实现&#xff1a;一种是"浮动布局"&#xff0c;另一种是“定位布局”。 这两种方式都有缺点&#xff1a;浮动布局比较灵活&#xff0c;但不容易控制&…

PySide6/PyQt6中的时间管理类:QTime的使用方法

文章目录 📖 介绍 📖🏡 环境 🏡📒 使用方法 📒📝 创建QTime对象📝 常用方法⚓️ 相关链接 ⚓️📖 介绍 📖 QTime是PySide6中用于处理时间段的类,可以用来表示一天中的时间,例如小时、分钟和秒。它提供了许多操作和格式化时间的功能,使得处理时间变得更加…

PLC、工业设备如何远程访问?贝锐蒲公英云智慧组网实现数据互通

在工业4.0时代&#xff0c;工业数字化的核心在于数据的互联互通&#xff0c;而在整个工业数字化、智能化的过程中&#xff0c;往往面临数据采集困难、设备运行情况难以知晓、部署管理难度大、后期维护成本高等问题。 显然&#xff0c;PLC设备在整个工业数字化进程中扮演的角色…

AI智能剪辑,快速剪辑出需要的视频

AI智能剪辑技术&#xff0c;是一种基于人工智能的技术&#xff0c;它能够通过机器学习和深度学习算法&#xff0c;自动识别视频中的内容&#xff0c;并根据用户的需求和喜好&#xff0c;快速地剪辑出需要的视频。 所需工具 &#xff1a; 一个【媒体梦工厂】软件 视频素材 …

spring boot application yaml key下划线如何转java的Properties对象字段驼峰

spring boot yaml key和value如何映射到Properties对象 下面以MybatisPlusProperties为例 ##java properties 字段驼峰 ##yaml文件如图&#xff0c;key使用下划线 ##java对象驼峰转下划线匹配yaml文件key DataObjectPropertyName.toDashedForm(name);//驼峰转下划线 ##设置P…