Rhy*_*hys 8 python sockets timeout python-3.x
我想捕获套接字超时(最好是在异常中)... except urllib.error.URLError:可以捕获它但我需要区分死链接和超时....如果我取出except urllib.error.URLError:套接字超时不捕获和脚本终止socket.timeout错误
import urllib.request,urllib.parse,urllib.error
import socket
import http
socket.setdefaulttimeout(0.1)
try:
file2 = urllib.request.Request('http://uk.geforce.com/html://')
file2.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13")
file3 = urllib.request.urlopen(file2).read().decode("utf8", 'ignore')
except urllib.error.URLError: print('fail')
except socket.error: print('fail')
except socket.timeout: print('fail')
except UnicodeEncodeError: print('fail')
except http.client.BadStatusLine: print('fail')
except http.client.IncompleteRead: print('fail')
except urllib.error.HTTPError: print('fail')
print('done')
Run Code Online (Sandbox Code Playgroud)
...
except urllib.error.URLError, e:
print type(e.reason)
Run Code Online (Sandbox Code Playgroud)
<class 'socket.timeout'>只要有套接字超时,您就会看到.这是你想要的吗?
例如:
try:
data = urllib2.urlopen("http://www.abcnonexistingurlxyz.com")
except Exception,e:
print type(e.reason)
...
<class 'socket.timeout'>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20543 次 |
| 最近记录: |