python中可读性html解析器的端口
breadabilit的Python项目详细描述
可浏览性-另一个可读性python(v2.6-v3.3)端口
我试着用一些古老的代码库的叉子 python的可读性。缺少测试、未使用的regex和注释 其他python端口中的部分代码让我抓狂。
我努力把好几把叉子合在一起 代码库,但它们之间的差异太大,以至于我无法使用它。
那么理智的人该怎么办呢?用我自己的repo重新移植,添加一些测试, 基础设施,努力使这个港口更好。OSS FTW(是的,NIH FML, 但我确实试过)
这里是js的一个非常直的端口:
- http://code.google.com/p/arc90labs readability/source/browse/trunk/js/readability.js 82
- http://www.minvolai.com/blog/decruft-arc90s-readability-in-python/
替代品
- https://github.com/codelucas/newspaper
- https://github.com/grangier/python goose
- https://github.com/aidanf/bte
- http://www.unixuser.org/~euske/python/webstemmer/extract
- https://github.com/al3xandru/readability.py
- https://github.com/rcarmo/soup-filter
- https://github.com/bcampbell/decruft
- https://github.com/gfxmonk/python可读性
- https://github.com/srid/readability
- https://github.com/dcramer/decruft
- https://github.com/reorx/readability
- https://github.com/mote/python可读性
- https://github.com/predatell/python-readability-lxml
- https://github.com/harshavardhana/boilerpipy
- https://github.com/raptium/hitomi
- https://github.com/kingwkb/readability
安装
这取决于lxml,因此需要一些c头才能安装 pip中的内容,以便它能够编译。
$ [sudo] apt-get install libxml2-dev libxslt-dev $ [sudo] pip install git+git://github.com/bookieio/breadability.git
测试
$ nosetests-2.6 tests && nosetests-3.2 tests && nosetests-2.7 tests && nosetests-3.3 tests
用法
命令行
$ breadability http://wiki.python.org/moin/BeginnersGuide
选项
- b 将写出解析的co指向临时文件并在 浏览器查看。
- d 将写出调试评分语句,以帮助跟踪节点的原因 选择作为文档以及为什么从最终的 产品。
- f 将覆盖获取html片段的默认行为(<;div>;) 并返回完整的<;html>;文档。
- v 将以详细调试模式输出,并帮助您了解它解析的原因 结果如何。
python api
from__future__importprint_functionfrombreadability.readableimportArticleif__name__=="__main__":document=Article(html_as_text,url=source_url)print(document.readable)
待完成的工作
是的,我要赶时间。我不分页,我有很多 自定义调整我需要开始,有些文章无法解析。 我还有更多的测试要写很多清洁助手,但是 希望事情的设置能够/将添加这些内容。
幸运的是,我的工具需要这个库:
所以我真的需要这是一个积极和改进的项目。
最重要的任务列表:
- 支持分析文章中的元数据[url,置信度,all 我们考虑过的候选人?
- 更多的测试,更彻底的测试
- 我们需要在测试文章中测试更多的示例文章
- 运行并检查测试文章回归的测试
- 整理出来的html,可能有助于回归测试^ ^
- 多页文章
- 性能调整,我们做了很多循环并重新删除一些节点 应该跳过。我们应该有一套回归测试 如果我们实施了一个能提高性能的更改,我们就知道这是正确的 离开。
- 更多的文档,但是sphinx文档和代码注释有助于 明白我们在做什么,为什么。这是一些 这些东西。