当我向函数添加超时参数时,我的代码总是进入异常并打印出“我失败了”。当我删除超时参数时,代码会正常工作,并进入 try 子句。关于超时参数如何在 urllib.request 函数中工作的任何信息?
nhập urllib.request
url = 'stackoverflow.com'
thử:
req = urllib.request.Request("http://" + url, thời gian chờ = 1000000000)
req = urllib.request.urlopen(req)
print("Tôi đã thử.")
ngoại trừ:
print("Tôi đã thất bại.")
Tôi đã thử sử dụng các yêu cầu thay vì urllib và mã đã hoạt động với tham số thời gian chờ đi kèm. Trong đoạn mã bên dưới, nó luôn đi vào mệnh đề thử, chuyển hoặc không chuyển tham số hết thời gian chờ.
yêu cầu nhập khẩu
url = 'stackoverflow.com'
thử:
req = request.get("http://" + url, timeout=1000000)
print("Tôi đã thử.")
ngoại trừ:
print("Tôi đã thất bại.")
Tuy nhiên, tôi không muốn sử dụng các yêu cầu do một số xung đột sau này trong mã của tôi. Bạn có ý tưởng nào về cách đưa thời gian chờ vào urllib không?
hiện hữuurllib.request.RequestKhông có thứ gọi là hết thời gian
các thông số ban đầu như thế nào, nhưng nó nằm trong urllib.request.urlopen , vì vậy bạn cần:
nhập urllib.request
url = 'stackoverflow.com'
thử:
req = urllib.request.Request("http://" + url)
req = urllib.request.urlopen(req, timeout=1000000000)
# ^^ ^^^ ^^
print("Tôi đã thử.")
ngoại trừ:
print("Tôi đã thất bại.")
Tôi là một lập trình viên xuất sắc, rất giỏi!