gpt4 book ai didi

python - 如何知道 urllib.urlretrieve 是否成功?

转载 作者:IT老高 更新时间:2023-10-28 20:27:49 25 4
gpt4 key购买 nike

urllib.urlretrieve 即使远程http服务器上不存在该文件,它也会静默返回,它只是将一个html页面保存到命名文件中。例如:

urllib.urlretrieve('http://google.com/abc.jpg', 'abc.jpg')

只是静默返回,即使 google.com 服务器上不存在 abc.jpg,生成的 abc.jpg 也不是有效的 jpg 文件,它实际上是一个 html 页面。我猜返回的 header (httplib.HTTPMessage 实例)可用于实际判断检索是否成功,但我找不到 httplib.HTTPMessage 的任何文档。

谁能提供一些关于这个问题的信息?

最佳答案

如果可能,请考虑使用 urllib2。它比 urllib 更高级和易于使用。

您可以轻松检测任何 HTTP 错误:

>>> import urllib2
>>> resp = urllib2.urlopen("http://google.com/abc.jpg")
Traceback (most recent call last):
<<MANY LINES SKIPPED>>
urllib2.HTTPError: HTTP Error 404: Not Found

resp 实际上是 HTTPResponse 对象,你可以用它做很多有用的事情:

>>> resp = urllib2.urlopen("http://google.com/")
>>> resp.code
200
>>> resp.headers["content-type"]
'text/html; charset=windows-1251'
>>> resp.read()
"<<ACTUAL HTML>>"

关于python - 如何知道 urllib.urlretrieve 是否成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/987876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com