Python爬虫速成之路(3):下载图片

 hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
19d95742d45b4220ad0ae0359ffcba93.png

💥个人主页:绝命Coding-CSDN博客
💥 所属专栏:后端技术分享
这里将会不定期更新有关后端、前端的内容,希望大家多多点赞关注收藏💖

 历史文章:

Python爬虫速成之路(1):获取网页源代码-CSDN博客

Python爬虫之路(2):爬天气情况-CSDN博客

 

教程:使用Python下载网页中的图片

在本教程中,我们将学习如何使用Python来下载网页中的图片。使用Python进行网页图片下载可以非常方便,只需要几行代码即可完成任务。

首先,我们需要导入所需的Python库,即urllib.requestos。这两个库分别用于发起HTTP请求和处理文件目录。

接下来,我们需要指定想要下载的网页地址,可以是任何包含图片的网页。

然后,我们需要指定图片下载的保存路径,也就是imgPath变量。你可以根据自己的需要修改保存路径。

在代码中,我们使用urllib.request.urlopen()方法打开指定的网页,并使用.read().decode('utf-8')方法对网页内容进行读取和解码。然后,我们使用正则表达式re.findall()方法查找网页中的图片链接。

接着,我们使用os.mkdir()方法创建图片保存的文件夹。

接下来,我们使用一个循环遍历所有的图片链接,并通过urllib.request.urlopen()方法下载每张图片。如果下载成功,就将其保存到指定的文件夹中。

#Python3下载网页中的图片 - Lavi的专栏 - CSDN博客  http://blog.csdn.net/liuweiyuxiang/article/details/52750367
# 教程    利用Python实现从百度下载图片到本地磁盘 - 森语音 - 博客园  https://www.cnblogs.com/593213556wuyubao/p/4972305.html
import urllib.request
import os
import re
#暴走_百度图片搜索  http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1513512946231_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=%E6%9A%B4%E8%B5%B0
url = r'http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1513512946231_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=%E6%9A%B4%E8%B5%B0'imgPath = r'F:\img'imgHtml = urllib.request.urlopen(url).read().decode('utf-8')
# test html
# print(imgHtml)
urls = re.findall(r'"objURL":"(.*?)"', imgHtml)if not os.path.isdir(imgPath):os.mkdir(imgPath)index = 1
for url in urls:print("下载:", url)# 未能正确获得网页 就进行异常处理try:res = urllib.request.urlopen(url)if str(res.status) != '200':print('未下载成功:', url)continueexcept Exception as e:print('未下载成功:', url)filename = os.path.join(imgPath, str(index) + '.jpg')with open(filename, 'wb') as f:f.write(res.read())print('下载完成\n')index += 1
print("下载结束,一共下载了 %s 张图片" % (index - 1))

其实下载图片的本质就是创建一个对应文件,然后将数据写入 

import urllib.request  
import os  
#下面是想要下载图片的地址  
url = r'https://bkimg.cdn.bcebos.com/pic/a2cc7cd98d1001e952722fb2ba0e7bec55e797c4?x-bce-process=image/watermark,image\_d2F0ZXIvYmFpa2UxNTA=,g\_7,xp\_5,yp\_5'  
#imgPath = r'/home/JueMingCoding/视频'          #Linux路径  
imgPath = r'C:\\py'  if not os.path.isdir(imgPath):  # 如果不存在这个目录,则创建这个目录  os.mkdir(imgPath)  # 未能正确获得网页 就进行异常处理  
try:  res = urllib.request.urlopen(url)  if str(res.status) != '200':            #状态不对  print('未下载成功:', url)  
except Exception as e:  print('未下载成功:', url)  
filename = os.path.join(imgPath, '暴走.jpg')      #创建  
with open(filename, 'wb') as f:  f.write(res.read())     #写入数据  print('下载完成\n')

使用requests(优化,简洁版)

import requests
import os  
#下面是想要下载图片的地址  
url = r'https://bkimg.cdn.bcebos.com/pic/a2cc7cd98d1001e952722fb2ba0e7bec55e3.下载图片797c4?x-bce-process=image/watermark,image\_d2F0ZXIvYmFpa2UxNTA=,g\_7,xp\_5,yp\_5'  
#imgPath = r'/home/JueMing/视频'          #Linux路径  
imgPath = r'C:\\py'  if not os.path.isdir(imgPath):  # 如果不存在这个目录,则创建这个目录  os.mkdir(imgPath)  # 未能正确获得网页 就进行异常处理  
try:  res = requests.get(url)  if str(res.status) != '200':            #状态不对  print('未下载成功:', url)  
except Exception as e:  print('未下载成功:', url)  
filename = os.path.join(imgPath, '暴走.jpg')      #创建  
with open(filename, 'wb') as f:  f.write(res.content)     #写入数据  print('下载完成\n')

 更多精彩内容请关注:绝命Coding

914cbb12b2c3492aaa31232a11aa9c64.png

 

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

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

相关文章

SpringMVC源码解析(一):web容器启动流程

SpringMVC源码系列文章 SpringMVC源码解析(一):web容器启动流程 目录 一、SpringMVC全注解配置1、pom文件2、web容器初始化类(代替web.xml)3、SpringMVC配置类(代替springmvc.xml)4、测试Controller 二、SpringServletContainerInitializer1、web容器初始化入口2、…

从本地到全局:基于图的RAG方法进行查询聚焦原理摘要

摘要 使用检索增强生成(RAG)从外部知识源检索相关信息,使大型语言模型(LLMs)能够回答有关私有和/或以前未见过的文档集合的问题。然而,当针对整个文本文档库提出全局问题时,例如“数据集中的主…

【css】image 使用 transform:scale 放大后显示不全的问题

css 可以用 transform: scale(1.2) 实现图片放大 1.2 倍显示的功能,在此基础上可以修改 transform-origin 为用户点击的坐标值优化体验。问题在于 origin 位于图片下方时,图片放大后出现滚动条,而滚动条的高度会忽略放大显示的图片的上半部分…

代码随想录算法训练营Day58|101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿

孤岛的总面积 101. 孤岛的总面积 (kamacoder.com) 先利用BFS或DFS对边界找岛屿并将其置0&#xff0c;岛屿变成海洋&#xff0c;然后再重新遍历一遍graph&#xff0c;在遍历过程中计算孤岛面积即可&#xff0c;代码如下。 #include <iostream> #include <vector>…

音视频入门基础:H.264专题(13)——FFmpeg源码中通过SPS属性获取视频色彩格式的实现

一、引言 通过FFmpeg命令可以获取到H.264裸流文件的色彩格式&#xff08;又译作色度采样结构、像素格式&#xff09;&#xff1a; 在vlc中也可以获取到色彩格式&#xff08;vlc底层也使用了FFmpeg进行解码&#xff09;&#xff1a; 这个色彩格式就是之前的文章《音视频入门基础…

【精品资料】模块化数据中心解决方案(33页PPT)

引言&#xff1a;模块化数据中心解决方案是一种创新的数据中心设计和部署策略&#xff0c;旨在提高数据中心的灵活性、可扩展性和效率。这种方案通过将数据中心的基础设施、计算、存储和网络资源封装到标准化的模块中&#xff0c;实现了快速部署、易于管理和高效运维的目标 方案…

2024最新Cloudways主机使用教程(含最新Cloudways折扣码)

Cloudways是一家提供云托管服务的公司&#xff0c;可以帮助你轻松管理和运行你的网站。本教程是Cloudways主机注册和使用教程。Cloudways界面简洁&#xff0c;使用方便&#xff0c;不需要复杂的设置&#xff0c;就能快速搭建一个WordPress网站。它的主机功能包括高级缓存和Bree…

DepthAnything(2): 基于ONNXRuntime在ARM(aarch64)平台部署DepthAnything

DepthAnything(1): 先跑一跑Depth Anything_depth anything离线怎么跑-CSDN博客 目录 1. 写在前面 2. 安装推理组件 3. 生成ONNX 4. 准备ONNXRuntime库 5. API介绍 6. 例程 1. 写在前面 DepthAnything是一种能在任何情况下处理任何图像的简单却又强大的深度估计模型。 …

Spring Cloud微服务开发框架

Spring Cloud是基于Spring Boot的微服务开发框架&#xff0c;为构建分布式系统和微服务架构提供了一系列的工具和解决方案。它包含了很多组件&#xff0c;每个组件都有特定的功能&#xff0c;可以解决微服务架构中常见的问题。下面是对Spring Cloud的一些主要组件和功能的详细介…

KingbaseES数据库逻辑备份还原

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 介绍2个KingbaseES用于备份还原的工具&#xff1a; sys_dump&#xff1a;逻辑备份sys_restore&#xff1a;逻辑还原 sys_dump 是 KingbaseES 用于逻辑备份的工具&#xff0c;可以将数据备份为不同类型的文件。支持数据…

ARM功耗管理标准接口之SCMI

安全之安全(security)博客目录导读 思考&#xff1a;功耗管理有哪些标准接口&#xff1f;ACPI&PSCI&SCMI&#xff1f; Advanced Configuration and Power Interface Power State Coordination Interface System Control and Management Interface 下图示例说明了实现…

docker部署canal 并监听mysql

1.部署mysql 需要开启mysql的binlong&#xff0c;和创建好用户等 可以参考这个 Docker部署Mysql数据库详解-CSDN博客 2.部署canal 参考这一篇&#xff1a; docker安装Canal&#xff0c;开启MySQL binlog &#xff0c;连接Java&#xff0c;监控MySQL变化_docker canal-CSD…

内网信息收集——MSF信息收集浏览器记录配置文件敏感信息

文章目录 一、配置文件敏感信息收集二、浏览器密码&记录三、MSF信息收集 域控&#xff1a;windows server 2008 域内机器&#xff1a;win7 攻击机&#xff1a;kali 就是红日靶场&#xff08;一&#xff09;的虚拟机。 一、配置文件敏感信息收集 使用searchall64.exe&#…

个人对于“链接”的理解

一、概念&#xff1a; 链接是将各种代码和数据片段收集并组合成为一个单一文件的过程&#xff0c;这个文件可被加载&#xff08;复制&#xff09;到内存并执行。在现代操作系统中&#xff0c;链接是由叫做链接器的程序自动执行的。 链接器在软件开发中扮演着重要的角色&#…

【错题集-编程题】四个选项(DFS + 剪枝 + 哈希表)

牛客对应题目链接&#xff1a;四个选项 (nowcoder.com) 一、分析题目 用递归枚举出所有的情况&#xff0c;注意剪枝&#xff1a; 填写某个数时&#xff0c;要看看还有没有剩余次数。填写某个数时&#xff0c;要看看符不符合若干题的选项必须相同。 二、代码 // 值得学习的代码…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(六)-人工智能控制的自主无人机用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

SparkStreaming--scala

文章目录 第1关&#xff1a;QueueStream代码 第2关&#xff1a;File Streams代码 第1关&#xff1a;QueueStream 任务描述 本关任务&#xff1a;编写一个清洗QueueStream数据的SparkStreaming程序。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.如何使用S…

OrangePi AI Pro 实测:感受 AI 应用的独特魅力与强大性能

OrangePi AiPro介绍和初始化配置 小寒有话说一、OrangePi AiPro介绍1. 主板详情2. 开发配置3. 镜像烧录4. 设备连接5. WiFi连接6. NVMe SSD的安装和挂载7. 更新下载源并下载必要的软件8. 扩展内存 二、Jupyter Lab AI测评应用案例1. 获取Jupyter Lab 网址链接2. 图像提取文字3.…

帕金森病患者应该如何进行日常锻炼以提高生活质量?

帕金森病患者的日常锻炼建议 帕金森病患者进行日常锻炼对于改善症状、维持肌肉功能和延缓疾病进展至关重要。以下是一些具体的锻炼建议&#xff1a; 选择适合的运动类型&#xff1a;帕金森病患者应选择低冲击、有氧的活动&#xff0c;如散步、骑自行车、游泳和太极拳等。这些运…

【qt】考试系统项目

话不多说,先一睹芳颜 咱们的账号,题库和答案都是通过文件获取的. 话不多说,直接开干 目录 一.登录窗口1.界面设计2.邮箱验证3.登录验证 二.题库窗口1.考试计时2.布局管理器3.题库显示4.按钮布局5.计算分数 三.窗口交互四.完整代码五.结语 一.登录窗口 1.界面设计 这里添加背…