关于Tornado的asyncHttpClient的问题,asynchttpclient,想用asyncHttpC


想用asyncHttpClient来下载xml,并用feedParser解析。代码如下

# coding:utf8from tornado.httpclient import AsyncHTTPClientfrom tornado.ioloop import IOLoopimport feedparserdef parse(response):  if response.error:    print "Error:", response.error  else:    print feedparser.parse(response.body).feed.titlehttp_client = AsyncHTTPClient()http_client.fetch("http://www.laruence.com/feed", parse)http_client.fetch("http://feed.cnblogs.com/blog/sitehome/rss", parse)http_client.fetch("http://feed.cnblogs.com/blog/u/155819/rss", parse)IOLoop.instance().start()

直接print response.body没有任何问题,但是加上feedParser来处理后,就会出现异常。似乎是解析时间过长导致的。有什么解决办法吗?

博客园_FX的笔记博客园_首页WARNING:tornado.general:uncaught exceptionTraceback (most recent call last):  File "C:\Python27\lib\site-packages\tornado\stack_context.py", line 239, in wrapped    callback(*args, **kwargs)  File "C:\Python27\lib\site-packages\tornado\simple_httpclient.py", line 212, in _on_timeout    raise HTTPError(599, "Timeout")HTTPError: HTTP 599: TimeoutError: HTTP 599: TimeoutERROR:tornado.application:Uncaught exception, closing connection.Traceback (most recent call last):  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 316, in wrapper    callback(*args)  File "C:\Python27\lib\site-packages\tornado\stack_context.py", line 239, in wrapped    callback(*args, **kwargs)  File "C:\Python27\lib\site-packages\tornado\simple_httpclient.py", line 470, in _on_chunk_data    self.stream.read_until(b"\r\n", self._on_chunk_length)  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 148, in read_until    self._try_inline_read()  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 393, in _try_inline_read    self._check_closed()  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 543, in _check_closed    raise StreamClosedError("Stream is closed")StreamClosedError: Stream is closedERROR:tornado.application:Exception in callback <functools.partial object at 0x02F12A20>Traceback (most recent call last):  File "C:\Python27\lib\site-packages\tornado\ioloop.py", line 453, in _run_callback    callback()  File "C:\Python27\lib\site-packages\tornado\stack_context.py", line 241, in wrapped    callback(*args, **kwargs)  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 316, in wrapper    callback(*args)  File "C:\Python27\lib\site-packages\tornado\stack_context.py", line 239, in wrapped    callback(*args, **kwargs)  File "C:\Python27\lib\site-packages\tornado\simple_httpclient.py", line 470, in _on_chunk_data    self.stream.read_until(b"\r\n", self._on_chunk_length)  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 148, in read_until    self._try_inline_read()  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 393, in _try_inline_read    self._check_closed()  File "C:\Python27\lib\site-packages\tornado\iostream.py", line 543, in _check_closed    raise StreamClosedError("Stream is closed")StreamClosedError: Stream is closed

编橙之家文章,

评论关闭