图片爬取案例

修改前的代码

但是总显示"失败"

原因是

修改之后的代码

复制代码
import requests
import os
from urllib.parse import unquote

# 原始URL
url = 'https://cn.bing.com/images/search?view=detailV2&ccid=TnImuvQ0&id=5AE65CE4BE05EE7A79A73EEFA37578E87AE19421&thid=OIP.TnImuvQ0eOu3Ncn8G7W4BQHaE8&mediaurl=https%3a%2f%2fpic.nximg.cn%2ffile%2f20230512%2f33688781_144207815103_2.jpg&exph=683&expw=1024&q=%e9%87%8d%e5%ba%86%e9%82%ae%e7%94%b5%e5%a4%a7%e5%ad%a6%e5%9b%be%e7%89%87%e5%ba%93&simid=608017321150603477&FORM=IRPRST&ck=82C8DD3330C84300350495177BFC73F6&selectedIndex=0&itb=0&idpp=overlayview&ajaxhist=0&ajaxserp=0'

# 解析出实际的图片URL
media_url_encoded = url.split('mediaurl=')[-1].split('&')[0]
media_url = unquote(media_url_encoded)

# 定义保存图片的目录和文件名
root = 'E://'
filename = media_url.split('/')[-1]
path = os.path.join(root, filename)

try:
    # 确保目录存在
    if not os.path.exists(root):
        os.makedirs(root)

    # 如果文件不存在,则下载图片
    if not os.path.exists(path):
        response = requests.get(media_url)
        response.raise_for_status()  # 如果请求出错,这里会抛出HTTPError异常
        with open(path, "wb") as f:
            f.write(response.content)
        print("文件保存成功")
    else:
        print("文件已存在,未进行下载")
except requests.RequestException as e:
    print(f"请求错误: {e}")
except Exception as e:
    print(f"发生错误: {e}")
相关推荐
小二·几秒前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
jllllyuz18 分钟前
基于MATLAB的二维波场模拟程序(含PML边界条件)
开发语言·matlab
忆锦紫25 分钟前
图像增强算法:Gamma映射算法及MATLAB实现
开发语言·算法·matlab
acaad30 分钟前
Redis下载与安装(Windows)
数据库·redis·缓存
玄〤30 分钟前
黑马点评中 VoucherOrderServiceImpl 实现类中的一人一单实现解析(单机部署)
java·数据库·redis·笔记·后端·mybatis·springboot
SunflowerCoder1 小时前
EF Core + PostgreSQL 配置表设计踩坑记录:从 23505 到 ChangeTracker 冲突
数据库·postgresql·c#·efcore
短剑重铸之日1 小时前
《7天学会Redis》Day2 - 深入Redis数据结构与底层实现
数据结构·数据库·redis·后端
七牛云行业应用1 小时前
重构实录:我删了 5 家大模型 SDK,只留了 OpenAI 标准库
python·系统架构·大模型·aigc·deepseek
知乎的哥廷根数学学派1 小时前
基于多模态特征融合和可解释性深度学习的工业压缩机异常分类与预测性维护智能诊断(Python)
网络·人工智能·pytorch·python·深度学习·机器学习·分类
亲爱的非洲野猪1 小时前
Java锁机制八股文
java·开发语言