如何在不完全下载文件的情况下在线检查文件的 HTTP 状态?

How to check HTTP status of a file online without fully downloading the file?

我有一个包含数千个在线文件的数据库,我想检查它们的状态(例如文件是否存在,是否将我们发送到 404,等等)并在我的数据库中更新它。

我使用 urllib.request 将文件下载到 python 脚本。但是,显然下载数 TB 的文件需要很长时间。并行处理该过程会有所帮助,但最终我只是不想下载所有数据,只是检查状态。有没有一种理想的方法来检查(使用urllib或其他包)某个URL的HTTP响应代码?

此外,如果我可以从服务器获取文件大小(在 HTTP 响应中),那么我也可以在我的数据库中更新它。

如果您的网络服务器是 standards-based,您可以使用 HEAD 请求而不是 GET。它 returns 没有实际获取页面的相同状态。

请求模块可以检查请求的状态响应。 只是做:

import requests

url = 'https://www.google.com'  # Change to your link
response = requests.get(url)
print(response.status_code)

这段代码显示200,所以请求成功