2012-02-25 49 views
2

一些朋友和我一直在研究一组脚本,这些脚本可以使uni上的机器更容易工作。其中一种工具目前使用Nokogiri,但为了让这些工具尽可能少地在所有机器上运行,我们一直试图找到一个“本地”的html解析器,而不是要求用户安装RVM和自定义gems(由于大多数用户的磁盘空间限制)。使用ruby核心库解析HTML? (即,不需要宝石)

我们几乎只限于Nokogiri/Hpricot /?我们应该看看只写我们自己的定制解析器吗?

干杯。

编辑:如果有在这里,我已经错过了我的搜索的帖子,让我知道!所以。有时只是太大有效地找东西......

+1

鉴于宝石都开源,你总是可以从宝石中提取你需要的东西,并在自定义解析器中使用它,然后你只需要提供你自己的代码... – 2012-02-25 15:59:49

+0

我肯定建议不要写自己的代码。 – 2012-02-25 16:03:16

+0

使用现有的解决方案会更加可靠。而@MarcTalbot上面说的是关键:如果一个gem是开源的,你可以将源代码复制到你的应用程序中(假设你不需要非GPL库)。 – Linuxios 2012-02-25 16:16:26

回答

1

有红宝石STDLIB
HTML解析器没有HTML解析器必须更加宽容坏标记比XML解析器

您可以运行HTML虽然整洁(http://tidy.sourceforge.net)
整理HTML和产生有效的标记
这现在可以通过REXML :-)这是STDLIB阅读

REXML比引入nokogiri慢得多,最后在2009年检查
Sam R uby一直努力使REXML快,虽然

一个更好的办法是有一个更好的部署
看看http://gembundler.com/bundle_package.html和使用Capistrano的(或类似)来配置服务器

+0

谢谢,部署的问题在于工具可以在大学管理的机器上运行,所以如果我们必须安装任何东西,它必须发生在用户主目录中,而这仅限于一定的空间:很少有人拥有足够的空间可以安装像RVM这样的自定义宝石。 这也是纯ruby,不是Rails。 – shearn89 2012-02-26 16:51:33

+0

另一种选择可能是创建和使用API​​。优点是代码仅部署在一台机器上 - 因此节省空间。但基准调用api的速度 – deepak 2012-02-28 05:46:59

+0

这些不是那些种类的工具 - 它是命令行实用程序,它将'lpr'包装成一个易于使用的工具。不过谢谢。 – shearn89 2012-02-28 13:06:05