我想在打开 URL 以读取数据之前检查它是否有效。
我正在使用 urlparse
包中的函数 urlparse
:
if not bool(urlparse.urlparse(url).netloc):
# do something like: open and read using urllin2
但是,我注意到一些有效的 URL 被视为已损坏,例如:
url = upload.wikimedia.org/math/8/8/d/88d27d47cea8c88adf93b1881eda318d.png
此 URL 有效(我可以使用浏览器打开它)。
有没有更好的方法来检查 URL 是否有效?
最佳答案
你可以检查 url 是否有 scheme:
>>> url = "no.scheme.com/math/12345.png"
>>> parsed_url = urlparse.urlparse(url)
>>> bool(parsed_url.scheme)
False
如果是这种情况,您可以替换方案并获得一个真实有效的 url:
>>> parsed_url.geturl()
"no.scheme.com/math/12345.png"
>>> parsed_url = parsed_url._replace(**{"scheme": "http"})
>>> parsed_url.geturl()
'http:///no.scheme.com/math/12345.png'
关于python - 如何使用 `urlparse` 检查 URL 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25259134/