Python 2.7 について質問があります。インターネットのurlopen
状態が悪いため、機能が接続に失敗することがあります。そのため、タイマーを追加して、接続がタイムアウトすると、以前の接続を閉じて再接続を試みるようにします。ここで私の実装では、デッドループに陥り、何度も「再接続しようとしています」...誰かが私を助けてくれますか? どうもありがとうございました!
def getConnection(urlItem, keywords, address):
urlItem.close()
print "Trying to reconnect..."
findArticles(keywords, address)
def findArticles(keywords, address):
urlItem = urllib.urlopen(address)
t = Timer(20.0, getConnection(urlItem, keywords, address))
t.start()
htmlSource = urlItem.read()
t.cancel()
これが私が得た例外です:
File "/usr/lib/python2.7/urllib.py", line 84, in urlopen
return opener.open(url)
File "/usr/lib/python2.7/urllib.py", line 205, in open
return getattr(self, name)(url)
File "/usr/lib/python2.7/urllib.py", line 342, in open_http
h.endheaders(data)
File "/usr/lib/python2.7/httplib.py", line 951, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 811, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 773, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 754, in connect
self.timeout, self.source_address)
File "/usr/lib/python2.7/socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
IOError: [Errno socket error] [Errno -2] Name or service not known