【问题标题】:How do i check if a file is uploaded on a website with python如何使用python检查文件是否上传到网站上
【发布时间】:2013-06-29 03:57:46
【问题描述】:

我有一个网站,我想从中下载文件。大约每隔一天上传一个新文件。如何检查新文件是否已启动?

例如: url1 = website.com/file_2013-06-27.zip

url2 = website.com/file_2013-06-29.zip

如果我转到 url 2,它会在 5 秒内重定向回 website.com 它的源代码是:<meta http-equiv="refresh" content="5;url=http://website.com" /> Error: 2 [ Not Allowed ]

文件大小为100mb+,如果我尝试通过urllib.urlopen("website.com/file_2013-06-27.zip").read()查看源代码,如果文件存在则需要一段时间。

有什么方法可以快速检查是否上传了新文件?

谢谢

【问题讨论】:

  • 如果服务器支持这个,可以发出HEAD请求;如果没有,只需发出 GET 请求,并通过套接字仅读取标头(即第一个空行之前的所有内容)。
  • 谢谢,我用过:import httplib2 h = httplib2.Http() resp = h.request("http://www.google.com", 'HEAD')[0]['content-type'] from:stackoverflow.com/questions/4421170/…

标签: python file web urllib


【解决方案1】:

Python 的 Requests 库非常适合检查 HTTP 状态代码(不下载文件,只是获取响应)等内容

例如:

import requests

r = requests.get('website.com/file_2013-06-27.zip')
if r.status_code == 200:
    print ("File uploaded.")

这不会下载文件(只是尝试使用 1GB 文件),只是检查 Web 服务器是否会提供它以及 HTTP 响应是什么。对于 HTTP,200 表示文件存在并且可以访问。有关 HTTP 响应代码的更多信息,请参见下文。

更多信息:
http://docs.python-requests.org/en/latest/ - 请求库
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - HTTP 响应代码指南

【讨论】:

  • 我的问题已通过我的问题下方的评论解决。但是为了回应你的回答,我在我的网站上发布我的问题之前已经尝试过了,它回复了 200,即使它不存在,因为它只是重定向了你。所以那是行不通的。不过还是谢谢。
猜你喜欢
  • 1970-01-01
  • 2022-01-19
  • 2011-03-06
  • 2021-08-14
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
  • 2019-11-14
  • 2011-03-27
相关资源
最近更新 更多