Python 如何检查URL是否可下载?

Python 如何检查URL是否可下载?,python,python-3.x,url,web-scraping,python-requests,Python,Python 3.x,Url,Web Scraping,Python Requests,如何使用Python检查给定url是否可下载 如果可以下载,则返回True,否则返回False 不可下载的url示例:www.google.com 注意:我不是在谈论URL的内容,而是将其保存为网页 什么是可下载的URL 如果您重定向到一个URL,并且一个文件开始下载,那么它就是一个可下载的URL 例如: 注意:它下载stackoverflow 2019年年度调查数据集。在HTTP协议级别本身,可下载和不可下载URL之间没有区别。有一个HTTP请求和一个后续响应。响应体可以是二进制文件、HTML

如何使用Python检查给定url是否可下载

如果可以下载,则返回True,否则返回False

不可下载的url示例:www.google.com

注意:我不是在谈论URL的内容,而是将其保存为网页

什么是可下载的URL

如果您重定向到一个URL,并且一个文件开始下载,那么它就是一个可下载的URL

例如:


注意:它下载stackoverflow 2019年年度调查数据集。

在HTTP协议级别本身,可下载和不可下载URL之间没有区别。有一个HTTP请求和一个后续响应。响应体可以是二进制文件、HTML、图像等


您可以只请求HTTP响应头并查找内容类型:并决定是否考虑内容类型为可下载或不可下载。

可以使用流行的请求库

来完成。
import requests
url = 'https://www.google.com'
headers=requests.head(url).headers
downloadable = 'attachment' in headers.get('Content-Disposition', '')

所以我试着寻找一个更好的方法,我正在检查的网站链接有点棘手 大多数stackoverflow回答都提到使用head request获取响应头,但我检查的站点返回了404错误。当我使用get request时,在输出头之前下载整个文件。我的朋友向我建议了一个使用参数stream=True的解决方案,这确实起到了作用

import requests 
r = requests.get(link, stream=True)
print(r.headers)

您好,我想如果您包括您尝试过的内容和一些不起作用的代码,并且您需要帮助,您会得到更多帮助[with.还解释为什么谷歌是不可下载的。可下载页面的示例是什么?@CodeCupboard是对的:什么是可下载的。事实上,当你在www.google.com上访问时,你会将一堆文件下载到浏览器中。我想你的意思是检查请求url的返回类型。我说的对吗?@CodeCupboard Plz检查我的地址EDIT@yAzou请检查我的Editcheck内容配置