python3版本的speedparser https://github.com/jmoiron/speedparser
speedparser3的Python项目详细描述
速度分析器3
speedparser3是由https://github.com/jmoiron/speedparser开发的python 3.5+版本的原始speedparser。
速度分析器
speedparser是Universal Feed Parser的黑盒“样式”重新实现。它使用一些feedparser代码 对于数据和作者,但主要是重新实现其数据规范化算法 基于feedparser输出。它使用lxml进行提要解析和可选 HTML清理。它与feedparser的兼容性对于 字段的子集,但对于该子集以外的字段则较差。见 tests/speedparsertests.py了解有关哪些字段更多或 不太兼容,也不兼容。
在Intel(R)Core(TM)i5 750上,仅在一个内核上运行,feedparser托管 2.5 feeds/sec在测试feed集上(在 tests/feeds.tar.bz2,而speedparser管理65 feeds/sec 打开html清理,关闭200 feeds/sec。
安装
pip3 install speedparser3
用法
用法与feedparser类似:
>>> import speedparser3 >>> result = speedparser3.parse(feed) >>> result = speedparser3.parse(feed, clean_html=False)
差异
在 SpeedParser3和FeedParser。最大的相似之处是他们都回来了 一个FeedParserDict()对象(具有可作为属性访问的键),它们都是 遇到错误时设置bozo键,以及 feed和entries键可能相同或非常相似。
speedparser3使用不同的(在某些情况下,使用更少或没有;买家要小心) 数据清理算法比feedparser。当它被启用时,lxml的 html.cleanerlibrary将用于清理html并给出类似但不 对各种属性和元素的相同保护。如果你提供 您自己的Cleaner元素到“clean_htmlkwarg,它将被使用 通过speedparser3清除提要和条目的各种属性。
speedparser3默认情况下不尝试修复字符编码,因为 对于大型提要,此处理可能需要很长时间。如果 馈送错误,或者如果您希望此额外级别的错误容忍度,则 可以使用chardet模块检测基于 记录或传递encoding=True到speedparser3.parse,它将落下 如果遇到编码错误,则返回到编码检测。
如果您的应用程序使用feedparser同时使用多个提要 CPU正在成为一个瓶颈,您可能需要尝试speedparser3作为 备选方案(使用feedparser作为备份)。如果你在写 不摄取许多馈送的应用程序,或者CPU不成问题的应用程序, 您应该使用^ TT2}$,因为它与坏的或畸形的数据是灵活的。 有更好的测试套件。