私はHTMLを読むためにhpricotを使用しています。セグメンテーション違反エラーが発生しました。グーグルで検索し、最新バージョンのRubyにアップグレードすると言う人もいます。レール2.3.2とルビー1.8.7を使用しています。このエラーを解決するにはどうすればよいですか?
7 に答える
多くのUnicode文字を含むHTMLページを解析しようとしましたが、Hpricotがクラッシュし続けました。最後に、sanitizeのモンキーパッチを使用して、railsアプリケーションのenvironment.rbに配置しました。このパッチを追加して以来、クラッシュは1回も発生していません。
HTML解析ライブラリを自由に選択できる場合は、それを切り替えてください。なぜ、Hpricotの作成者は、最近、HPricotの代わりにNokogiriを使用する方がよいと投稿しました。
HTTPartyもご覧ください。
ルビー1.8.5では、hpricot-v0.6.161を使用してみてください
それは私のために働いた。
記憶から、私が最後にそれを約1年前に使用して以来:
Hpricotは属性を固定サイズのバッファーに格納し、一部のフレームワークはドキュメント属性に非常に長いハッシュを生成します。このバッファのサイズを設定できる、解析前に設定できる静的フィールドがいくつかあります。
もちろん、今はなくなっていますが、Webページのドキュメントでかなり目立つことを覚えています。
さて、あなた自身の質問に基づいて、私は「Rubyの最新バージョンにアップグレードする」と言います。しかし、私はhpricot segfaultingにも問題がありました。これは、私のスレッドの使用法に関連しているようです。
これは、バグ リストの未解決の問題のようです。まで経験しました。私の理論は、ファイル内の HTML 構造または悪い/破損した文字に関係しているのですが、正確にどこにあるのかわかりません。
問題へのリンクは次のとおりです。
私は同じセグメンテーションの問題を抱えていますが、悲しいことに、Googleキャッシュを介しても、上記のデイブが引用した問題を調べることはできません。文字はおそらく)
サニタイズ ライブラリでも同じ問題が発生し、ここにモンキー パッチを投稿しました: http://github.com/rgrove/sanitize/blob/1e1dc9681de99e32dc166f591343dfa60fc1f648/lib/sanitize/monkeypatch/hpricot.rb