timeout for urllib2.urlopen() in pre Python 2.6 versions

前端 未结 6 538
没有蜡笔的小新
没有蜡笔的小新 2020-12-29 03:34

The urllib2 documentation says that timeout parameter was added in Python 2.6. Unfortunately my code base has been running on Python 2.5 and 2.4 platforms.

6条回答
  •  星月不相逢
    2020-12-29 04:11

    you can set a global timeout for all socket operations (including HTTP requests) by using:

    socket.setdefaulttimeout()

    like this:

    import urllib2
    import socket
    socket.setdefaulttimeout(30)
    f = urllib2.urlopen('http://www.python.org/')
    

    in this case, your urllib2 request would timeout after 30 secs and throw a socket exception. (this was added in Python 2.3)

提交回复
热议问题