Feedparser - TypeError('需要一个浮点数')

时间:2015-05-06 20:00:47

标签: python lxml feedparser libuv

我正在使用guvfeedparser同时解析多个Feed。以下是我的代码:

guv.monkey_patch(time=True, socket=True)

def parse_feed(_feed):  
    return feedparser.parse(_feed)

def main():
    urls = ["http://feeds.bbci.co.uk/news/rss.xml"]
    pool = guv.GreenPool()
    results = pool.starmap(parse_feed, zip(urls))
    for resp in results:
        print(str(resp)) 

但是,我得到以下输出:

{'bozo_exception': TypeError('a float is required',), 'bozo': 1, 'feed': {}, 'entries': []}

我在使用Eventlet时遇到类似问题,但在本机Python 3 threading库中却没有。

1 个答案:

答案 0 :(得分:0)

我无法在本地安装guv模块,因此我无法逐字测试您的代码,但如果我使用eventlet.greenpool.GreenPool,则一切正常:

import feedparser
import eventlet.greenpool

def parse_feed(_feed):  
    print 'PARSE:', _feed
    return feedparser.parse(_feed)

def main():
    urls = ["http://feeds.bbci.co.uk/news/rss.xml"]
    pool = eventlet.greenpool.GreenPool()
    results = pool.starmap(parse_feed, zip(urls))
    for resp in results:
        print resp

main()

我也看到了itertools.starmap()的正确行为。您是否有可能看到某种瞬态错误?