How to catch 404 error in urllib.urlretrieve

后端 未结 3 1338
长情又很酷
长情又很酷 2020-12-05 07:17

Background: I am using urllib.urlretrieve, as opposed to any other function in the urllib* modules, because of the hook function support (see reporthook

3条回答
  •  不知归路
    2020-12-05 07:31

    You should use:

    import urllib2
    
    try:
        resp = urllib2.urlopen("http://www.google.com/this-gives-a-404/")
    except urllib2.URLError, e:
        if not hasattr(e, "code"):
            raise
        resp = e
    
    print "Gave", resp.code, resp.msg
    print "=" * 80
    print resp.read(80)
    

    Edit: The rationale here is that unless you expect the exceptional state, it is an exception for it to happen, and you probably didn't even think about it -- so instead of letting your code continue to run while it was unsuccessful, the default behavior is--quite sensibly--to inhibit its execution.

提交回复
热议问题