浏览器保存下载不带后缀的图片文件名命名规则
最近搞爬虫的时候对于下载图片的时候如何命名碰到的问题。对于一般地址规则的图片,
例如:
https://pic2.zhimg.com/80/v2-2e4868da9f91f3320f3fdad248c28ff8_720w.jpg?source=1940ef5c,
https://wx3.sinaimg.cn/mw690/005uuxWfly1gn6r1cxl15j30xc0ipjz0.jpg
之前都是这么:
filename = url.split('/')[-1].split('?')[0]
或者这么搞的。
from urllib.parse import urlparse
file_name = os.path.basename(urlparse(url).path)
不过最近碰到好多不地址规则的图片,就处理不了。如下:
https://y3p.org/download/file.php?id=235
https://www.sammyboy.com/attachments/1589520290213-png.78635/
但是浏览器保存的时候名字却正常,因为response headers 里面都带了content-disposition字段,包含了文件名信息
https://y3p.org/download/file.php?id=235 字段
content-disposition:inline; filename*=UTF-8''79C2EAD8-AE48-4E39-A65A-5820697B189A.jpeg
https://www.sammyboy.com/attachments/1589520290213-png.78635/ 字段
content-disposition: inline; filename="1589520290213.png"
所以浏览器保存的时候文件名就是79C2EAD8-AE48-4E39-A65A-5820697B189A.jpeg和1589520290213.png
至于不带content-disposition字段url,例如:https://bkimg.cdn.bcebos.com/pic/0eb30f2442a7d933c8956906b500c61373f08202ab39
浏览器应该根据content-type字段和url路径的最后部分组成名字的。
通过fiddler抓包修改response headers,
https://y3p.org/download/file.php?id=235 去掉content-disposition字段,文件名为:file.jpg
https://www.sammyboy.com/attachments/1589520290213-png.78635/ 去掉content-disposition字段,文件名为:下载.png,看样浏览器蒙了。。。
还有浏览器无法正确保存文件名的例子:
https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0130%2F1901f6fcj00qnqthz0008d200dv0066g00g20075.jpg&thumbnail=650x2147483647&quality=80&type=jpg
https://www.91porn.com/captcha.php
至于浏览器到底怎么命名下载文件的,搜了一下也没找到太多有用的资料。
实测来看应该是:
1、看content-disposition字段,ps:content-disposition字段值得格式也不一样,上面我我举的例子就是不同的。
2、没有content-disposition字段的话在根据url和Content-Type拼接文件名,
3、最后实在无法处理的默认文件名为:下载,在由Content-Type决定后缀
浏览器保存下载不带后缀的图片文件名命名规则相关推荐
- JS下载不带后缀名的文件,下载后自动加了后缀名,如何处理?
//订单批量导入-模板下载 function templateDownload() {//window.open(resolve("xxx/xxx/xxx/xxxxx.xls#") ...
- android studio 图片的命名规则
只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_.] 小写字母,数字,下划线, 这三个,也就是里面不能有大写字母, .9图片在mipmap中不能识别,在darwable中可以, ...
- java获取文件名【不带后缀】
获取不带后缀名的文件名 public static String getFileNameWithoutSuffix(File file){//忽略判断String fileName = file.ge ...
- 间隔定时拍照摄像头FTP上传文件夹图片命名规则
自定义路径命名: F:\FTP服务器\20211116\images F:\FTP服务器:选择保存的磁盘.文件夹 20211116:自定义创建文件夹的年月日 Images:自定义保存图片的文件夹 FT ...
- 图片远程保存,浏览器直接下载
$url = '远程图片'; $url = preg_replace( '/(?:^[\'"]+|[\'"\/]+$)/', '',$url] ); // ...
- php图片截取后缀,PHP抓取远程图片(含不带后缀的)教程详解
一.创建项目 作为演示,我们在www根目录创建项目grabimg,创建一个类GrabImage.php和一个index.php. 二.编写类代码 我们定义一个和文件名相同的类:GrabImage cl ...
- php指定浏览器下载多个图片,360浏览器批量下载并保存图片
360浏览器批量下载并保存图片 360浏览器如何批量下载和保存图片? 360浏览器是中国非常知名的浏览器,有许可供用户使用. 今天php批量下载图片,我谈论的是360浏览器如何批量保存网页图片. 我相 ...
- 苹果电脑下载文件自动带后缀问题解决
#避免苹果电脑下载文件自动带后缀 发现一个有趣的文档,win下载纯文本文件的时候不会带后缀,但是mac下载的就会带后缀,而且要求文件下载时候直接变下载,不能被浏览器打开,如图: 图中发现,在mac下苹 ...
- PHP抓取远程图片教程(包含不带后缀图片)
之前做微信登录开发时候,发现微信头像图片没有后缀名,传统的图片抓取方式不奏效,需要特殊的抓取处理.所以,后来将各种情况结合起来,封装成一个类,分享出来. 创建项目 作为演示,我们在www根目录创建项目 ...
最新文章
- 破解网页禁止使用“复制”、“粘贴“
- 【整合篇】Activiti业务与流程的整合
- java sqlhelper_java版sqlhelper(转)
- 【人物】乔布斯:A级人才的自尊心不需要你呵护
- 什么行业需要java_java开发可以从事什么行业
- linux shell trap的使用
- CSS3实现光束和波浪
- 脉冲神经网络原理及应用pdf_CNN卷积神经网络原理讲解+图片识别应用(附源码)...
- 渗透工具-masscan
- 迪普科技负载均衡助力金关工程(二期)核心业务交付
- 计算机术语仿真,计算机仿真-精.ppt
- cydia服务器未响应,完美解决cydia 软件源空白问题
- 2018年南京大学计算机专业录取分数线,南京大学2018年录取分数线
- 接入小程序客服(java版教程),处理第一次主动推送会话超时问题
- MQTT.fx连接阿里云物联网平台
- 安全设计:加速传输软件镭速传输安全技术解读
- 十三、JavaScript ajax请求
- windows下查看硬盘序列号、设备序列号、操作系统版本和安装时间、系统启用时间等命令
- 【附源码】计算机毕业设计SSM宁夏旅游信息管理系统
- 希腊字母英文简写与常用指代意义
热门文章
- 分布式之BASE理论
- masonry Unable to simultaneously satisfy constraints. Probably at least one of the c
- 解决VS中提示信息没有自动选中首选项的问题
- 在梯度下降法中,为什么梯度的负方向是函数下降最快的方向?
- Xcode 下载真机包调试
- Dracula PRO 零售版
- Charles 抓包工具教程(二) Charles 抓包HTTPS请求
- sklearn.metrics中的评估方法(MAE\MSE)
- 蚂蚁全媒体中心总编刘鑫炜:如何破解碎片化时代的营销困境
- 论文排版怎么排?教您3分钟搞定!