use*_*543 30 python validation url
在python中,我如何检查以.jpg结尾的url是否存在?
例如:http: //www.fakedomain.com/fakeImage.jpg
谢谢
Mir*_*lov 35
下面的代码相当于tikiboy的答案,但是使用了一个易于使用的高级请求库.
import requests
def exists(path):
r = requests.head(path)
return r.status_code == requests.codes.ok
print exists('http://www.fakedomain.com/fakeImage.jpg')
Run Code Online (Sandbox Code Playgroud)
在requests.codes.ok
平等200
,所以你可以,如果你想替换的确切状态代码.
requests.head
如果服务器没有响应,则可能抛出异常,因此您可能希望添加try-except结构.
此外,如果你要包括代码301
和302
,考虑代码303
也一样,特别是如果你解引用的URI是指在资源关联数据.URI可能代表某个人,但您无法下载某个人,因此服务器会使用303重定向将您重定向到描述此人的页面.
小智 33
>>> import httplib
>>>
>>> def exists(site, path):
... conn = httplib.HTTPConnection(site)
... conn.request('HEAD', path)
... response = conn.getresponse()
... conn.close()
... return response.status == 200
...
>>> exists('http://www.fakedomain.com', '/fakeImage.jpg')
False
Run Code Online (Sandbox Code Playgroud)
如果状态不是200,则URL中不存在该资源.这并不意味着它完全消失了.如果服务器返回301或302,则表示该资源仍然存在,但位于不同的URL.要更改处理此情况的功能,只需将状态检查行更改为return response.status in (200, 301, 302)
.
感谢大家的所有回复,最后使用以下内容:
try:
f = urllib2.urlopen(urllib2.Request(url))
deadLinkFound = False
except:
deadLinkFound = True
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28930 次 |
最近记录: |