Python 3.x 检查是否存在未下载的大文件
不确定这是否可行,但我想在不下载的情况下检查对大文件的HTTP请求的状态代码;我只想检查一下服务器上是否有 用Python的Python 3.x 检查是否存在未下载的大文件,python-3.x,web-scraping,http-headers,python-requests,Python 3.x,Web Scraping,Http Headers,Python Requests,不确定这是否可行,但我想在不下载的情况下检查对大文件的HTTP请求的状态代码;我只想检查一下服务器上是否有 用Python的请求可以做到这一点吗?我已经知道如何检查状态代码,但我只能在文件下载后进行检查 我想我问的是,你能发出一个GET请求并在收到响应头后立即停止它吗?使用requests.head(),这只返回请求头,而不是所有内容,换句话说,它不会返回消息体,但你可以从消息头获取所有信息 HEAD方法与GET相同,只是服务器不能 在响应中返回消息正文。包含的元信息 在HTTP中,响应头请求的
请求
可以做到这一点吗?我已经知道如何检查状态代码,但我只能在文件下载后进行检查
我想我问的是,你能发出一个GET请求并在收到响应头后立即停止它吗?使用requests.head()
,这只返回请求头,而不是所有内容,换句话说,它不会返回消息体,但你可以从消息头获取所有信息
HEAD方法与GET相同,只是服务器不能
在响应中返回消息正文。包含的元信息
在HTTP中,响应头请求的头应该相同
响应GET请求而发送的信息此方法可以
用于获取由
请求而不传输实体体本身。这种方法是可行的
通常用于测试超文本链接的有效性、可访问性、,
以及最近的修改。
例如:
import requests
url = 'http://lmsotfy.com/so.png'
r = requests.head(url)
r.headers
输出:
此代码不下载图片,但返回图片消息的标题,其中包含大小、类型和日期。如果图片不存在,就不会有这样的信息。通常,对于这类事情,您使用HEAD方法而不是GET。如果您在web上查询某个随机服务器,那么请准备将其配置为返回不一致的结果(这对于需要注册的服务器是典型的)。在这种情况下,您可能希望使用GET请求来下载少量字节。使用
HEAD
方法。
例如urllib
import urllib.request
response = urllib.request.urlopen(url)
if response.getcode() == 200:
print(response.headers['content-length'])
对于请求
import requests
response = requests.head(url)
if response.status_code == 200:
print(response.headers['content-length'])
也许可以帮助您。@dot.Py,它使用对
ssh
的子进程调用来检查ssh服务器上是否存在文件。。。不是同样的情况,但是谢谢。
import requests
response = requests.head(url)
if response.status_code == 200:
print(response.headers['content-length'])