2

我正在使用 hpricot 来阅读 HTML。我遇到了一个分段错误错误,我用谷歌搜索,有人说升级到最新版本的 Ruby。我正在使用 rails 2.3.2 和 ruby​​ 1.8.7。如何解决此错误?

4

7 回答 7

5

我试图解析其中包含许多 unicode 字符的 html 页面,而 Hpricot 一直在崩溃。最后,我使用了来自 sanitize 的猴子补丁并将其放入我的 rails 应用程序的 environment.rb 中。自从我添加此补丁以来,没有发生过一次崩溃:

http://github.com/rgrove/sanitize/blob/1e1dc9681de99e32dc166f591343dfa60fc1f648/lib/sanitize/monkeypatch/hpricot.rb

于 2009-09-03T19:11:53.283 回答
4

如果您可以自由选择您的 HTML 解析库,请切换它。为什么,Hpricot 的创建者最近发布说,现在你应该更好地使用Nokogiri而不是 HPricot。

你也可以看看 HTTParty。

于 2009-07-25T11:42:31.520 回答
2

在 ruby​​ 1.8.5 上尝试使用 hpricot -v 0.6.161

这对我有用。

于 2011-05-13T08:32:32.690 回答
1

从记忆中,自从我大约一年前上次使用它以来:

Hpricot 将属性存储在一个固定大小的缓冲区中,并且一些框架在文档属性中生成非常长的散列。您可以在解析之前设置一些静态字段,以设置此缓冲区的大小。

我记得它在网页上的文档中相当突出,尽管它现在已经消失了。

于 2009-08-26T17:25:11.227 回答
0

好吧,根据您自己的问题,我会说“升级到最新版本的 Ruby”。但是,我也遇到了 hpricot segfaulting 的问题,这似乎与我对线程的使用有关。

于 2009-05-30T22:17:17.477 回答
0

这似乎是错误列表中的一个突出问题。我亲身经历过。我的理论与文件中的 HTML 结构或坏/损坏的字符有关,但我还没有找到确切的位置。

以下是问题的链接:

于 2009-06-20T02:35:31.087 回答
0

我有同样的段错误问题,但遗憾的是无法查阅 Dave 上面提到的问题,即使通过谷歌缓存 - 从我一直在谷歌搜索的 parse.rb 段错误与编码实体或 alt 字符集(重音字符也许)

sanitize lib 遇到了同样的问题并在这里发布了一个monkeypatch:http: //github.com/rgrove/sanitize/blob/1e1dc9681de99e32dc166f591343dfa60fc1f648/lib/sanitize/monkeypatch/hpricot.rb

于 2009-08-26T17:03:47.043 回答