python 网页下载附件,没有后缀名该怎么办

发布于 2022-09-06 02:50:31 字数 576 浏览 17 评论 0

任务:访问的网站有附件,要下载附件。python语言
问题:有两种情况,
第一种情况是取不到后缀名,如http://www.gzsjzyxh.cn/news_d...,附件链接可以获取到,但没有后缀名,在本地写的时候就是个没有后缀名的文件,不能判断是什么类型的文件;
第二种情况是附件链接上的后缀名和实际文件类型不一样,如http://www.gzsjzyxh.cn/news_d...,附件链接的后缀名明明是zip,但下下来后附件是xls。

以前碰到的,都是附件链接跟着后缀名的。常用的下载方式,无论是requests还是urllib2,都是先访问附件链接,然后将内容写到本地,但现在能访问这个附件链接,写本地这个步骤却没有写明后缀名,就下了个没类型的文件,对后面的操作有影响。
不知道有没有大神知道该怎么操作,或是知道这样奇怪的链接访问获取到相应类型的文件是怎么个原理么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

说谎友 2022-09-13 02:50:31

如果你抓包就会发现链接头部是有后缀名的:
r=requests.head(url)
print r.headers['Content-Disposition']
返回attachment; filename="2015年度贵州省建筑业企业优秀项目经理名单.xls"

菊凝晚露 2022-09-13 02:50:31

你可以试一下用unix的wget下载后找增加的文件名。这样就能找到正确的后缀。

如果一定要纯python实现的话,你可以试一下wget包

>>> import wget
>>> url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
>>> filename = wget.download(url)
100% [................................................] 3841532 / 3841532>
>> filename
'razorback.mp3'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文