urllib爬取图片

news/2025/2/13 21:42:53/

使用 urllib 库来爬取图片

import urllib.request# 图片的 URL 链接
image_url = "http://img.netbian.com/file/2023/0415/235643ofSA0.jpg"# 获取图片并保存到指定路径
urllib.request.urlretrieve(image_url, "image.jpg")

这段代码中,首先指定了要爬取的图片的 URL 链接,然后使用 urllib.request.urlretrieve() 函数将图片下载到指定的路径。你可以将 image_url 替换为实际的图片 URL,将 "image.jpg" 替换为保存图片的路径和文件名,如果路径不存在,系统会自动创建相应的文件夹。

需要注意的是,使用 urllib 库下载图片时,需要确保图片 URL 的有效性,否则程序可能会因为无法连接或者图片不存在等原因失败。同时,一些网站可能会针对爬虫做出限制,需要根据具体情况采取相应措施。

使用 urllib 库爬取多个图片可以通过循环遍历图片链接来实现,具体步骤如下:

  1. 导入 urllib.request 模块。
  2. 定义图片链接的列表或从网页中爬取图片链接并保存到列表中。
  3. 使用循环遍历列表中的图片链接。
  4. 使用 urllib.request.urlretrieve() 方法下载图片并保存到本地文件。

下面是示例代码:

import urllib.request# 图片链接列表
img_urls = ['http://img.netbian.com/file/2023/0414/small234647agSR11681487207.jpg','http://img.netbian.com/file/2023/0415/small2350329sMTe1681573832.jpg','http://img.netbian.com/file/2023/0414/small233653zJreD1681486613.jpg'
]# 循环遍历图片链接并下载保存
for img_url in img_urls:# 截取图片链接中的文件名作为本地文件名file_name = img_url.split('/')[-1]# 下载图片并保存到本地文件urllib.request.urlretrieve(img_url, file_name)

注:通过以上代码可以爬取图片,但是由于爬取网站图片可能存在版权问题,请遵守相关法律规定,不要非法爬取、使用图片。

可以使用urllib库中的urlopen函数获取网页的源代码,然后使用正则表达式来匹配其中的图片链接,最后再使用urllib库中的urlretrieve函数下载图片。

下面是一个示例代码,它可以获取指定URL的页面源代码,并下载其中的所有图片到本地。

import re
import urllib.request# 获取页面源代码
response = urllib.request.urlopen('http://www.netbian.com/')
html = response.read()# 使用正则表达式匹配图片链接
img_pattern = re.compile('img .*?src="(.*?)"')
img_urls = re.findall(img_pattern, str(html))# 下载图片并保存到本地
for img_url in img_urls:urllib.request.urlretrieve(img_url, img_url.split('/')[-1])

在上面的代码中,我们使用了正则表达式匹配了所有img标签中的src属性值,然后使用urlretrieve来将每张图片下载下来并保存在当前目录下。


http://www.ppmy.cn/news/59959.html

相关文章

分析linux中动态库so文件的常用方法

前言 在linux系统中,我们经常会遇到各种各样的动态库文件,常见的是.so后缀,那么我们应该如何分析这些文件的用途和作用呢?毕竟我们不能一知半解的“搞事情”。 正文 查看文件属性 首先,我们从整体上了解一下该文件的基…

【Unity-UGUI控件全面解析】| Toggle 开关组件详解

🎬【Unity-UGUI控件全面解析】| Toggle 开关组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 监听开关事件五、组件相关扩展使用5.1 配合Toggle Group组使用💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y …

车载搭载SystemUI音频技术,全方位呈现高品质音效

SystemUI概述 SystemUI 是 Android 操作系统中的一个系统服务,主要负责管理和显示系统界面元素,例如状态栏、通知栏、键盘和屏幕截图等。SystemUI 系统服务是系统级别的组件,提供的功能对于用户体验和系统安全性都非常重要。 SystemUI 的主…

DP练习题

1.减操作(ACWING) 若有 a b c d e f g 几个数, 先对位置d操作 变成 a b c d - e f g 再对c操作 变成 a b c - (d-e) f g 仔细分析后得出结论:对于第一个数如a, 它一定为正数,第二个数b,一定为负数&#…

三维数据学习笔记:ply数据内容介绍

目录 前言1. 三维数据的组成1.1 点云数据1.2 网格数据 2. ply数据内容2.1 属性2.1.1 文本描述属性2.1.2 数据描述属性2.1.2.1 顶点(vertex)2.1.2.2 面(face)2.1.2.3 相机(camera) 2.2 数据2.2.1 顶点(vertex)2.2.2 面(face)2.2.3 相机(camera) 3. 示例3.1 示例13.2 示例2 前言 …

MySQL学习笔记第六天

第06章多表查询 5. 7种SQL JOINS的实现 A是员工表,B是部门表。 5.7.1 代码实现 #8. UNION 和 UNION ALL的使用 # UNION:会执行去重操作 # UNION ALL:不会执行去重操作,效率优于前者,开发中优先使用 #结论:如果明确…

oracle 数据库创建表空间、用户、数据库实例、授权、数据导入

在安装完oracle 数据库后默认会创建一个orcl的数据库实例。除了这种方式外还可以通过别的方式创建数据库 一般导入数据通过以下五个步骤 创建导入的数据库实例,已有的话可以忽略创建表空间 2.1 创建临时表空间 2.2 创建数据表空间创建用户给用户授权导入数据库数据…

idea修改 项目代码,浏览器页面不生效 解决方案

使用快捷键ctrl shift delete,清理浏览器缓存 1、问题描述 idea修改前端项目代码,运行谷歌浏览器不起作用。 我也试过 rebuild project, 重启idea,等方法都不管用。 再次运行谷歌浏览器,还是没有变化。 2、尝试了以下方法&am…