Python - 检查文件/网页是否存在

Pet*_*ter 0 python

我想使用Python根据其响应代码检查文件/网页是否存在并采取相应措施.但是,我要求使用HTTPS并提供用户名和密码凭据.我无法通过curl(不喜欢HTTPS)运行它,但通过使用wget(使用--spider和--user和--password)获得了成功.我想我可以尝试通过os.system将wget合并到脚本中,但它打印出很多输出,解析起来非常棘手,如果URI不存在(又名404),我认为卡住"等待响应... ".

我已经看过网络上的urllib2并且看到人们做了一些事情,但我不确定这是否解决了我的情况并且解决方案总是非常复杂(例如Python urllib2,基本HTTP身份验证和tr.我).无论如何,如果我可以得到一些关于我最容易使用python的途径的指导,那将是值得赞赏的.

编辑:使用os.system方法(并提供带有"-q"的wget)似乎返回一个不同的数字,如果URI存在或不存在,所以这给了我一些现在可以使用的东西.

dom*_*nik 5

您可以HEAD使用python 请求发出请求.

import requests
r = requests.head('http://google.com/sjklfsjd', allow_redirects=True, auth=('user', 'pass'))
assert r.status_code != 404
Run Code Online (Sandbox Code Playgroud)

如果请求失败ConnectionError,则该网站不存在.如果您只想检查某个页面是否存在,您将获得成功的响应,但状态代码将是404.

请求有一个非常好的界面,所以我建议检查出来.您可能会喜欢它,因为它非常直观且功能强大(轻量级).