html文章清理器/提取器,五个过滤器兼容。
ftr的Python项目详细描述
#python ftr
ftr是[five filters extractor]的partial(re-)实现 ](http://fivefilters.org/)在python中。
它清理HTML网页并提取其内容和元数据 更舒适的阅读体验(或任何你需要的)。它使用 要解析的配置文件的集中化和互惠化存储库 尽可能精确的网站,并退回到众所周知的 可读性如果未找到配置,则自动提取程序。
一个显著的区别是,这个python实现将获取 从Internet上的集中存储库在 如果在本地找不到配置,则运行。
[有完整的文档](http://python-ftr.readthedocs.org)。
##与fivefilters php实现的区别
python ftr: -目前只有一个解析器库(lxml)。html5lib尚未移植。 -不将日期字符串转换为对象。我觉得这样更灵活,可以在上层处理它们,让用户能够访问定制的解析器。如果我实现了将自定义解析函数传递给提取器,这种情况可能会改变。 -使用[可读性lxml](https://github.com/buriy/python-readability)在非自动正文提取之后进行清理。即使它是arc90的readability.js的一个端口,就像5个过滤器使用的[php readability port](https://github.com/wallabag/wallabag/blob/master/inc/3rdparty/libraries/readability/Readability.php)一样,它最终也可能产生不同的结果,因为它们计算内容权重的方式不同(我没有按代码比较)。 -在没有可用的站点配置时不会回退到自动分析,但在找到配置并失败时会部分回退。由于python ftr是为了包含在复杂的解析链中而创建的,因此当当前站点没有配置时,我们不需要自动解析。详情见下文。 -没有指纹支持。这个特性看起来还没有完成,或者至少没有足够的文档让我在原始代码中理解它。 -完全不使用globalfive filters配置文件。.txt看起来未维护,通用回退仍可以在此模块之外实现:使用api时,可以通过参数提供自己的全局配置。
##自动提取
如果您需要在未找到配置的情况下进行全自动分析-这很容易检测到,因为process()和低级API提高了siteconfignotfound-只需使用可读性lxml,可浏览性,python goose,汤过滤器或任何适合您的方法。
在A^ { STR 1 } $现有配置但解析失败< /强>的原因中,我们仍然尊重
这并不像php实现那样有特色,php实现试图通过其他方式提取日期、语言和作者,但仍然比什么都没有要好。
使用自动提取时,ContentExtractor实例将具有一个.failures属性,精确列出哪些非自动提取失败。
如果找到配置但没有site或body指令(例如,应明确使用自动提取),则如果自动提取成功,则不会设置failures属性。
##待办事项
有关动态todo列表,请参见[问题愿望列表](/1flow/python ftr/labels/wishlist)。
##许可证
GNU Affero GPL版本3。